我想在块/ plugin_name / cron.php创建的有层次的层次结构中运行我的cron脚本。 请帮助我如何创建和调用此cron脚本以在常规层次结构中运行。
I want to run my cron script at sheduled intervels created at blocks/plugin_name/cron.php . Please help me how to create and call this cron script to run at regular intervels.
最满意答案
Cron.php是旧方法,你应该在blocks/plugin_name/lib.php创建一个function plugin_name_cron()
然后在version.php中你有一个cron参数,告诉Moodle每x秒运行一次插件。
$plugin->cron = 0; // Seconds.所以每15分钟一次
$plugin->cron = 15*60; // Seconds.0秒表示永远不会运行cron。
这取决于运行的admin cron。 如果admin cron运行60分钟,那么你的插件cron将每60分钟运行一次。
对于测试,您可以从http://yoursite.com/admin/cron.php手动运行admin cron
如果要安排cron在特定时间运行,那么您需要在cron函数中添加一些代码以计算出预定的时间。
编辑:
实际上,块的cron函数略有不同。 在类class block_plugin_name extends block_base..创建function cron() class block_plugin_name extends block_base..
更新:
从Moodle 2.7+开始,上面已经被计划任务所取代https://docs.moodle.org/dev/Task_API#Scheduled_task_usage
Cron.php is the old way, you should create a function plugin_name_cron() in blocks/plugin_name/lib.php
Then in version.php you have a cron parameter which will tell Moodle to run the plugin every x seconds.
$plugin->cron = 0; // Seconds.So every 15 minutes is
$plugin->cron = 15*60; // Seconds.0 seconds means never run the cron.
This does depend on the admin cron being run too. If the admin cron is run ever 60 minutes then your plugin cron will only be run every 60 minutes.
For testing you can run the admin cron manually from http://yoursite.com/admin/cron.php
If you want to schedule the cron to run at a certain time, then you will need to add some code to your cron function to work out the scheduled time.
EDIT:
Actually the cron function is slightly different for blocks. Create a function cron() in your class class block_plugin_name extends block_base..
UPDATE:
From Moodle 2.7+, the above has been replaced with scheduled tasks https://docs.moodle.org/dev/Task_API#Scheduled_task_usage
更多推荐
发布评论