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.