Quando um cronjob realmente começa?

1

Minha pergunta vem de uma observação que fiz ao ver um cron job a cada minuto rodando assim:

12:00:15 (cron started)
12:01:20 (cron started)
12:02:02 (cron started)
.
.
.

Como parece, o cron não roda a cada minuto (a cada 60 segundos). Esse cron na verdade executa um script php que faz uma consulta mysql que seleciona e atualiza o banco de dados. Termina em menos de 2 segundos.

Um cronjob agendado para cada minuto deve ser executado no início do minuto (12:00:00) ou será executado em qualquer outro segundo específico desse minuto?

A carga do sistema tem algo a ver com isso? Existe alguma maneira de garantir que um cron comece no início de um minuto?

    
por sotoz 20.10.2015 / 09:23

1 resposta

3

O que você observa não me surpreende, cron não é preciso para o segundo. Você pode confiar nele para executar o trabalho no minuto em que o programado para ser executado, mas você não deve confiar em mais precisão.

Se você precisa que seu trabalho comece no momento preciso, você deve iniciá-lo mais cedo e esperar dentro do roteiro para que o momento chegue. E como 1 minuto é o menor intervalo suportado por cron , eu pensaria em diferentes opções para iniciá-lo (por exemplo, um script Python).

(*) veja o comentário abaixo

    
por 20.10.2015 / 09:39

Tags