O processo de Moodle 'cron' é um script PHP que tem de ser executado regularmente no Moodle. O script cron do Moodle executa diferentes tarefas em intervalos programados que são essenciais para o funcionamento correto do moodle. O script cron Moodle executa tarefas incluem o envio de e-mail, atualizar Moodle relata, feeds RSS, completação de atividade, postar mensagens no fórum e outras tarefas.

Cada módulo e cada arefa tem têm horários diferentes e o Moodle gerencia estes tempos corretamente.

IMPORTANTE: Não ignore a configuração do processo cron no seu servidor para o seu Moodle. Seu site não funcionará corretamente sem ela

Um programa especial chamado crontab é usado para executar o script cron do Moodle em um intervalo regular.  

Em servidor dedicado

Se seu servidor for dedicado, você pode definir a cron de duas formas:

Através do PHP CLI

/usr/bin/php /path/to/moodle/admin/cli/cron.php

Ou através do WGET

/usr/bin/wget http://your.moodle.site/admin/cron.php

PS: podes usar o CURL também...

E, a partir da versão 2.9 o acesso sem senha ao CRON foi desativada e ao tentar acessar será mostrado a mensagem 

Sorry, internet access to this page has been disabled by the administrator.

Note que os caminhos /path/to/moodle/admin/cli/cron.php devem ser trocados pelo caminho absoluto até chegar no arquivo PHP. 

Período ideal de execução da CRON

A Moodle.org aconselha uma vês por minuto e assim a CRON seria assim:

*/1 * * * * /usr/bin/php /path/to/moodle/admin/cli/cron.php > /dev/null

Mais isso significa que são 1440 execuções por dia o que em muitos casos é exageradamente alto e pode causar problemas. Então eu, Eduardo Kraus, aconselho a cada 30 minutos se não for algo que envolva precisão de datas e horas.

Então a CRON seria assim:

*/30 * * * * /usr/bin/php /path/to/moodle/admin/cli/cron.php > /dev/null

Usas o CPanel?

Neste caso o comando é igual e no CPanel busque por Tarefas Cron e cadastre la o comando.

Gostou? Não esqueça de curtir!

15 comentários

Deixe uma resposta

  1. Prezados,
    Estamos encontrando problemas em relação a data de termino do curso. Quando o aluno termina o curso e aparece a opção para emitir o certificado, a data de termino do curso não aparece... Ela só aparece depois que rodamos o cron !! é normal isso ? Eu conseguiria pegar essa data sem precisar rodar o Cron ?
    Agradeço quem puder ajudar !

     
  2. Eduardo, executei o cron pela primeira vez no meu moodle para acompanhar os alertas de atividades do curso, executei manualmente na URL, no final da execução, apareceu erros, poderia.

    Scheduled task complete: Atualizar os tokens OAuth para as contas de serviço (core\oauth2\refresh_system_tokens_task)
    Execute scheduled task: Processamento em background para SCORM (mod_scorm\task\cron_task)
    ... started 18:24:52. Current memory use 50.4Mb.
    Updating scorm packages which require daily update
    ... used 3 dbqueries
    ... used 0.011074781417847 seconds
    Scheduled task complete: Processamento em background para SCORM (mod_scorm\task\cron_task)
    Execute scheduled task: Cron que limpa a pasta TMP (local_kopere_dashboard\task\task_tmp)
    ... started 18:24:52. Current memory use 50.8Mb.
    ... used 0 dbqueries
    ... used 6.0081481933594E-5 seconds
    Scheduled task complete: Cron que limpa a pasta TMP (local_kopere_dashboard\task\task_tmp)
    Execute scheduled task: Moodlerooms Forum mailings and maintenance jobs (mod_hsuforum\task\cron_task)
    ... started 18:24:52. Current memory use 50.9Mb.
    Starting digest processing...
    Cleaned old digest records
    Sending forum digests: quarta, 25 Out 2017, 18:24
    Removing old forum read tracking info...
    ... used 12 dbqueries
    ... used 0.18057513237 seconds
    Scheduled task complete: Moodlerooms Forum mailings and maintenance jobs (mod_hsuforum\task\cron_task)
    Execute adhoc task: core_course\task\course_delete_modules
    ... started 18:24:53. Current memory use 51.5Mb.
    ... used 119 dbqueries
    ... used 46.648974895477 seconds
    Adhoc task failed: core_course\task\course_delete_modules,Erro de codificação detectado e deve ser corrigido por um programador: The course module 3 could not be deleted. #0 /home/u956302611/public_html/lib/dml/mysqli_native_moodle_database.php(1175): moodle_database->query_end(false)
    #1 /home/u956302611/public_html/lib/dml/moodle_database.php(1558): mysqli_native_moodle_database->get_records_sql('SELECT COUNT(*)...', Array, 0, 0)
    #2 /home/u956302611/public_html/lib/dml/moodle_database.php(1631): moodle_database->get_record_sql('SELECT COUNT(*)...', Array, 0)
    #3 /home/u956302611/public_html/lib/dml/moodle_database.php(1841): moodle_database->get_field_sql('SELECT COUNT(*)...', Array)
    #4 /home/u956302611/public_html/backup/util/dbops/backup_controller_dbops.class.php(477): moodle_database->count_records_sql('SELECT COUNT(*)...', Array)
    #5 /home/u956302611/public_html/backup/moodle2/backup_stepslib.php(1787): backup_controller_dbops::backup_includes_mnet_remote_users('70459e28793b9fa...')
    #6 /home/u956302611/public_html/backup/util/plan/backup_structure_step.class.php(88): backup_main_structure_step->define_structure()
    #7 /home/u956302611/public_html/backup/util/plan/base_task.class.php(181): backup_structure_step->execute()
    #8 /home/u956302611/public_html/backup/util/plan/base_plan.class.php(178): base_task->execute()
    #9 /home/u956302611/public_html/backup/util/plan/backup_plan.class.php(120): base_plan->execute()
    #10 /home/u956302611/public_html/backup/controller/backup_controller.class.php(322): backup_plan->execute()
    #11 /home/u956302611/public_html/admin/tool/recyclebin/classes/course_bin.php(125): backup_controller->execute_plan()
    #12 /home/u956302611/public_html/admin/tool/recyclebin/lib.php(151): tool_recyclebin\course_bin->store_item(Object(stdClass))
    #13 /home/u956302611/public_html/course/lib.php(1187): tool_recyclebin_pre_course_module_delete(Object(stdClass))
    #14 /home/u956302611/public_html/course/classes/task/course_delete_modules.php(66): course_delete_module('3')
    #15 /home/u956302611/public_html/lib/cronlib.php(81): core_course\task\course_delete_modules->execute()
    #16 /home/u956302611/public_html/admin/cron.php(81): cron_run()
    #17 {main}
    !!! Erro ao gravar na base de dados !!!

     
  3. Olá Eduardo, trabalho em uma escola pública e estou tentando fazer da plataforma moodle uma extensão dos estudos para os meus alunos. Porém, ao acessar a plataforma a mesma não envia as mensagens de forum e email: a linha de comando que uso é a que o cpanel me forneceu:

    /opt/alt/phpnat/usr/bin/php -q /home/atividad/public_html/moodle/admin/cli/cron.php

    eu poderia substitui por essa:

    */1 * * * * /usr/bin/php /atividadesnaweb.com.br/moodle/admin/cli/cron.php > /dev/null

    Preciso fazer mais alguma configuração na plataforma?

    Obrigado

     
  4. Precisas colocar a URL absoluta do PHP e do seu arquivo cli/cron.php. Se não sabes qual é, entre em contato com o suporte da sua hospedagem

     
  5. Bom dia Eduardo, no caso de rodar o cron para atualizar o "Andamento do Curso", qual seria o melhor tempo?

     
  6. Use 10 minutos que é o que o Moodle pede

     
  7. Olá, dependendo da quantidade de alunos e informações a serem verificadas, o tempo de 10 minutos poderá sobrecarregar o servidor. O ideal é fazer uma mensuração de banda.

    Talvez 30 min seja um tempo confortável.

    Lembrando que dependendo da atualização feita em algum cadastro de aluno ou configuração do curso, essa levará esse tempo para rodar na cron e surtir efeito de fato.

     
  8. Olá Eduardo,
    Estou com uma dificuldade com o cron, ele estava rodando normalmente com o comando:
    wget -q -O /dev/null 'http://www.ntenatal.net/ead/admin/cron.php?password=*******'

    Porém, inesperadamente parou de funcionar.
    Já tentei outros comandos, mas nada surtiu efeito.

    O que você acha que pode ser?

     
  9. Acontece algum erro ao acessar no Browser a URL da Cron?

     
  10. Não Eduardo,
    Não acontece nenhum erro.

     
  11. Tens que ativar o modo DESENVOLVEDOR em Administração do Site >> Desenvolvimento >> Debugging

     
  12. Olá, professor Eduardo kraus, tudo bem!
    Gostei bastante do artigo. E sempre estou visitando seu blog.

    Sei que você é especialista em PagSpeed Insights, e gostaria de tirar uma dúvida sobre Cron!

    Como faço para instalar o módulo PagSpeed Insights do Google no meu CPANEL? Instalar e ativa-lo com comandos pelo Cron? É possível?

     
  13. Boa noite Eduardo.

    O cron do meu moodle está rodando certinho. No entanto eu andei alterando as configs originais lá em tarefas agendadas (/ead/admin/tool/task/scheduledtasks.php).
    Você sabe onde posso conseguir os padrões para eu refazer esstas configs para voltar ao default do moodle?

    Obrigado.
    Ed Mendonça

     
  14. Obrigado pela dica caro Eduardo, já adicionei no meu serviço. Vamos que vamos!