使用Drush运行单个cron作业

时间:2014-10-28 08:23:48

标签: drupal drupal-7 cron hook drush

是否可以通过Drush运行单个cron作业?例如我有一个名为" mycron"的cron工作。在Esysia UI中,我可以通过单击[run]来运行该作业。

在匆忙中,我可以使用命令" drush elysia-cron"但这将运行所有活跃的cron工作。

我的问题:如何通过drush运行mycron(仅限)?

要求:让所有的cron工作都可以在匆忙中进行,以便#34; drush elysia-cron mycron"会工作的。

1 个答案:

答案 0 :(得分:6)

这是我如何评估自己的cron钩子。

1)在模块中找到相应的 hook_cron 调用。 modulename_cron 就是你想要的。

2)弄清楚任何特定变量在运行时是否会受到影响。在我的例子中,有一个变量 modulename_cron_last ,它跟踪上次运行cron的时间。我必须将此强制为0才能使其运行。

3)运行drush:

drush eval "variable_set('modulename_cron_last', 0);"
drush eval "modulename_cron();"
drush eval "variable_set('modulename_cron_last', time());"

如果您对D7使用2.x DEV版本,则可以使用命令:

drush elysia-cron run [JOB_NAME]
or:
drush elysia-cron run [JOB_NAME] --ignore-time

(使用--ignore-time强制执行)

4)创建一个脚本并将其添加到调度程序(在我的例子中,实际的本地Linux crontab)