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

  1. 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.
  2. A cada minuto. No crontab do servidor, ou na tela de tarefas agendadas do painel da hospedagem, programe a execução a cada minuto.
  3. 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.
  4. 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.

Alejandro Argachá, especialista em Moodle

Escrito por Alejandro Argachá

Trabalha com Moodle desde 2011, com mais de 250 projetos entregues, boa parte para outras empresas que vendem Moodle. Resolve na prática problemas como este em plataformas de empresas e instituições brasileiras. Ver casos reais.