Cron do Moodle não roda: sintomas e como configurar

O cron é a parte do Moodle que ninguém vê e todo mundo sente quando para. Ele executa as tarefas em segundo plano: e-mails e notificações, backups de curso, conclusões, certificados, limpezas e sincronizações.
Sintomas de cron parado
- E-mails e notificações que não chegam, ou chegam com horas de atraso.
- Backups e restaurações parados em "pendente".
- Conclusões de curso e certificados que não aparecem.
- Usuários sincronizados do RH ou do Active Directory que não atualizam.
- Aviso em Administração do site > Notificações dizendo que o cron não roda há algum tempo.
Como configurar
- Use a linha de comando. O jeito recomendado é o servidor executar o script de cron do Moodle pelo PHP de linha de comando, não por uma chamada pela web.
- A cada minuto. No crontab do servidor, ou na tela de tarefas agendadas do painel da hospedagem, programe a execução a cada minuto.
- Mesmo PHP do site. O PHP da linha de comando precisa ser da mesma versão e ter as mesmas extensões do PHP do site. É um erro comum em hospedagens com várias versões de PHP.
- Confira. Em Administração do site > Servidor > Tarefas, veja se a última execução das tarefas está atualizada.
Hospedagem compartilhada
Alguns planos de hospedagem compartilhada só permitem rodar tarefas a cada 15 minutos ou mais. O Moodle funciona, mas tudo atrasa. Explicamos esse e outros limites em instalar Moodle na hospedagem compartilhada.
Cron rodando, mas tarefa falhando
Às vezes o cron roda, mas uma tarefa específica falha sempre e atrasa as outras. Os registros de tarefas mostram qual é. Já vimos plugins falhando em loop por baixo de uma plataforma que parecia normal.
Leia também: Qual versão do PHP usar no Moodle (tabela 4.1 a 5.3 e comandos).
Perguntas frequentes
O que é o cron do Moodle?
É a rotina que executa as tarefas em segundo plano do Moodle: envio de e-mails e notificações, backups, conclusões de curso, limpezas e sincronizações. Ele precisa ser chamado pelo servidor de forma programada.
Com que frequência o cron do Moodle deve rodar?
A recomendação é a cada minuto. Intervalos longos atrasam e-mails, backups e notas.
Como saber se o cron do Moodle está parado?
Em Administração do site > Notificações, o Moodle avisa quando o cron não roda há algum tempo. Também dá para ver a última execução de cada tarefa em Administração do site > Servidor > Tarefas.
Quanto tempo leva para configurar o cron?
Na maioria dos servidores, configurar e testar o cron cabe em uma hora técnica.