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.
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 !
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 !!!
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
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
Bom dia Eduardo, no caso de rodar o cron para atualizar o "Andamento do Curso", qual seria o melhor tempo?
Use 10 minutos que é o que o Moodle pede
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.
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?
Acontece algum erro ao acessar no Browser a URL da Cron?
Não Eduardo,
Não acontece nenhum erro.
Tens que ativar o modo DESENVOLVEDOR em Administração do Site >> Desenvolvimento >> Debugging
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?
Assim: https://github.com/pagespeed/cpanel
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
Obrigado pela dica caro Eduardo, já adicionei no meu serviço. Vamos que vamos!