【问题标题】:Run individual cron jobs with Drush使用 Drush 运行单个 cron 作业
【发布时间】:2014-12-23 13:59:05
【问题描述】:

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

在 drush 中,我可以使用命令“drush elysia-cron”,但这将运行所有活动的 cron 作业。

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

请求:使所有 cron 作业在 drush 中可用,以便“drush elysia-cron mycron”可以工作。

【问题讨论】:

    标签: drupal drupal-7 cron hook drush


    【解决方案1】:

    这是我评估自己的 cron 钩子的方式。

    1) 在您的模块中找到合适的 hook_cron 调用。 modulename_cron 是你想要的。

    2) 确定运行时是否有任何特定变量影响。就我而言,有一个变量 modulename_cron_last 跟踪上次运行 cron 的时间。我必须将其强制为 0 才能运行。

    3) 快速运行:

    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)

    【讨论】:

    • 如何使用或不使用 elysia 以编程方式运行单个 cron
    猜你喜欢
    • 2016-02-04
    • 2020-01-22
    • 1970-01-01
    • 1970-01-01
    • 2013-07-02
    • 2014-11-02
    • 1970-01-01
    相关资源
    最近更新 更多