Pular para conteúdo

Tarefas de Fundo (Background Taks)

O NetBox suporta o enfileiramento de tarefas que precisam ser realizadas no background, desacoplada do ciclo de request-response (requisição-reposta), usando a biblioteca Python RQ. Três tarefas de queue (fila) de diferentes prioridades são definidas por padrão:

  • Alta (High)
  • Padrão (Default)
  • Baixa (Low)

Qualquer tarefa na fila de prioridade "alta" (high) são completadas antes da fila "padrão" (default), e qualquer tarefa na fila padrão é completada antes da fila "baixa" (low)

Plugins podem também adicionar filas customizadas conforme sua própria necessidade utilizando o atributo queues abaixo da classe PluginConfig. Um exemplo está incluso abaixo:

class MyPluginConfig(PluginConfig):
    name = 'meu_plugin'
    ...
    queues = [
        'foo',
        'bar',
    ]

A classe PluginConfig acima cria duas filas (queues) customizadas com os seguintes nomes meu_plugin.foo e meu_plugin.bar. (O nome do plugin é salvo como um prefixo em cada fila para evitar conflito entre diferentes plugins.)

Warning

Por padrão, os processos RQ worker do Netbox apenas servem as filas high, default e low. Plugins que queiram introduzir filas customizadas devem orientar seus usuários para tanto reconfigurar o worker padrão, ou odar um worker dedicado especificando as filas necessárias. Por exemplo:

python manage.py rqworker my_plugin.foo my_plugin.bar