2015-02-10 119 views
0

我想在blocks/plugin_name/cron.php創建的sheduled插件中運行我的cron腳本。請幫助我如何創建並調用此cron腳本以定期運行。如何通過插件在moodle中設置cron腳本

+0

https://docs.moodle.org/22/en/Cron – 2015-02-10 06:52:06

+1

對不起,我通過這些文檔可以任何人解釋brefily如何創建和調用塊/ plugin_name/cron.php的cron腳本 – 2015-02-10 06:56:15

+0

[PHP:運行預定作業(cron作業)](http://stackoverflow.com/問題/ 120228/php-running-scheduled-jobs-cron-jobs) – Maks3w 2015-02-10 08:31:58

回答

4

Cron.php是老樣子,你應該創建一個function plugin_name_cron()blocks/plugin_name/lib.php

然後在version.php你有一個cron參數,它會告訴Moodle的運行插件每x秒。

$plugin->cron = 0; // Seconds. 

所以每隔15分鐘

$plugin->cron = 15*60; // Seconds. 

0秒意味着永遠運行的cron。

這的確取決於運行的管理員cron。如果管理員cron在60分鐘內運行,那麼你的插件cron只會每60分鐘運行一次。

測試你可以從http://yoursite.com/admin/cron.php

如果你想安排cron來在特定時間運行手動運行管理的cron,那麼你就需要一些代碼添加到您的cron功能,制定出計劃時間。

編輯:

實際上,cron函數對於塊略有不同。創建你的類class block_plugin_name extends block_base..

更新function cron()

從Moodle的2.7+,上述已被替換計劃任務https://docs.moodle.org/dev/Task_API#Scheduled_task_usage

+0

我創建lib.php爲<?php 函數mailer_cron(){ global $ CFG,$ DB; \t $ t = time(); $ record-> userid = 2; $ record-> courseid = 101; $ record-> coursestarttime = $ t; $ record-> courseendtime = $ t; $ record-> duefreq = $ t; $ lastinsertid = $ DB-> insert_record('due_freq_details',$ record,false); }並在verison中添加了plugin-> cron = 15 * 60;但數據庫未更新 – 2015-02-10 07:38:59

+0

如果你看看我的編輯點評 - 它塊 – 2015-02-10 07:54:51

+0

()類block_plugin_name我可以插入上面的代碼在功能上玉米稍有不同擴展block_base .. – 2015-02-10 08:35:56

相關問題