Operação

Jobs e o agendador

O agendador num contêiner ou num servidor, tarefas de manutenção e verificações.

Todo site Nimbly precisa do agendador rodando, mesmo sem tarefas próprias: ele processa a fila de jobs e faz a manutenção do framework. Esta página trata de como rodá-lo; Trabalho em segundo plano trata de como escrever jobs e tarefas.

Num contêiner

A imagem do contêiner roda o agendador sozinha a cada minuto. Com vários contêineres num volume compartilhado, uma trava faz com que só um deles execute o trabalho.

Num servidor próprio

Instale o agendador uma vez por servidor, registre cada site nele e instale a entrada do cron:

sudo php core/cli/nimbly.php scheduler:install
sudo php core/cli/nimbly.php scheduler:project:add my-site /var/www/my-site
sudo php core/cli/nimbly.php scheduler:cron:install --user=www-data

Uma entrada do cron atende todos os sites registrados. A cada minuto ela inicia dois workers por site, um para a fila de jobs e outro para a agenda do site, para que uma tarefa longa num site nunca atrase outro. No máximo cinco workers rodam ao mesmo tempo num servidor, configurável com NIMBLY_SCHEDULER_MAX_CONCURRENCY. A saída vai para /var/log/nimbly-scheduler.log, rotacionado semanalmente.

php core/cli/nimbly.php scheduler:project:list
sudo -u www-data php core/cli/nimbly.php scheduler:run --dry-run
php core/cli/nimbly.php scheduler:cron:status

Manutenção que sempre roda

Tarefa A cada
Processar os jobs na fila minuto
Remover sessões expiradas 30 minutos
Arquivar as estatísticas de requisições hora
Remover jobs concluídos com mais de 30 dias dia
Remover histórico com mais de 90 dias dia
Remover execuções de agentes com mais de 30 dias dia

A agenda própria de um site acrescenta tarefas; ela não pode remover estas. Um projeto pode substituir o funcionamento de um comando de manutenção definindo o mesmo comando em ext/cli/commands.php.

Verifique

./nimbly schedule:status

informa a última execução bem-sucedida de cada tarefa de manutenção e termina com erro quando uma tarefa falhou, nunca rodou ou está atrasada. O painel do admin mostra o mesmo em Needs attention. Verifique depois de cada deploy: uma entrada no cron, sozinha, não prova que o trabalho roda.

A fila

/nb-admin/jobs mostra os jobs na fila, em execução, concluídos e falhos, com o último erro de cada um. Run due jobs now processa a fila na hora; jobs concluídos e jobs que falharam de vez são removidos após 30 dias. ./nimbly jobs:run processa um job pela linha de comando, ./nimbly jobs:run 25 até 25.

Ver esta página em Markdown