Em sites Moodle de grande porte, o cron processa uma carga enorme de dados. Dependendo do intervalo de processamento do cron, pode haver sobrecarga de processamento, ou seja, um segundo cron se dispara sem que a último tenha sido finalizado.
A sobrecarga de processamento do cron é um grande vilão da performance. Para evitar essa situação, uma alternativa é montar um painel de controle do cron. Esse painel deve ser implementado com base nos seguintes requisitos:
1) Efetuar hacker de código no cron para registrar no log data de início e término de cada cron;
2) Efetuar hacker de código para impedir duplicidade de processamento de cron. Quanto um cron é disparado, antes será feito uma consulta no banco para checar se o último cron foi finalizado. Se o último ainda estiver em andamento, o processamento do novo será suspenso.
3) Como regra 2) impede duplicidade de processamento, em caso da falha do último cron, não haverá registro que foi finalizado. Sendo assim, o próximo não será processado. Neste caso, após três tentativas de execução suspensa, automaticamente será disparado um e-mail ao administrador do Moodle. Este deve checar o log do último cron para examinar se ocorreu erro no processamento. Deve interver no painel, desbloquear manualmente o processamento para o que próximo seja executado.
4) O painel de relatório deve listar o tempo médio de processamento de cada cron, as tentativas de execução suspensas e a liberação manual do bloqueio. A informação desse painel será útil para analisar e acompanhar a performance do servidor.