【问题标题】:My cron job doesn't work - Could not open input file error我的 cron 作业不起作用 - 无法打开输入文件错误
【发布时间】:2021-05-25 19:04:58
【问题描述】:

我有一个 woocommerce 网站并使用直销插件。因为我在共享服务器上,所以我尝试设置一个 cron 作业,以减少我网站的 CPU 使用率。 我检查了 dropshipping 插件,他们有 5 个计划的 cron 作业,我想将该计划添加到我的集合中,但我不确定我是否做得正确。

所以它们在我的 cpanel 中具有以下结构:

public_html/wp-content/plugins/bdroppy/src/CronJob/Jobs

在 CronJob 文件夹中,他们有 Jobs 文件夹和 1 个文件 CronJob.php。 cronjob

在 Jobs 文件夹下,它们有 6 个 php 文件。 cronjob-jobs folder

所以我将 CronJob/Jobs 文件夹中的所有任务添加到我的 siteground 帐户:

php /home/******/www/ *********/public_html/wp-content/plugins/bdroppy/src/CronJob/Jobs/QueueJob.php

但我收到每个任务的错误“无法打开输入文件错误”。 我是否应该将 CronJob.php 也添加到 cron 作业命令中? 希望我解释得当,感谢您的帮助! :)

【问题讨论】:

    标签: woocommerce cron cron-task


    【解决方案1】:

    据我了解,由于性能原因,您已禁用 WP-Cron,而是希望直接从共享服务器运行 wp-cron.php。运行wp-cron.php 将负责执行使用wp_schedule_event 函数安排的任何事件。包括您正在使用的代发货插件的事件。事实上,插件正在admin_footer 钩子中注册它的事件。所以只要你激活了插件,你就不需要做任何其他的事情了。

    cron 作业的正确命令(在您的服务器上设置)是:

    php -q  /home/******/www/ *********/public_html/wp-cron.php
    

    为了检查插件事件(即bdroppy_queues_eventbdroppy_change_catalog_eventbdroppy_update_catalog_eventbdroppy_update_product_eventbdroppy_sync_order_event)是否已正确安排,您可以使用专用插件(例如WP Crontrol ),或使用WP command line interface (wp-cli),您的共享服务器上也应该可以使用。

    如果你想使用wp-cli,你需要:

    • ssh 进入您的共享服务器;
    • 导航到public_html目录;
    • 运行这个命令:wp cron event list

    有关如何使用 wp-cli 列出计划的 cron 事件的更多信息,请查看其 documentation

    【讨论】:

    • 您好 Diego,感谢您的解释,不胜感激。我试图与 Siteground 联系,但他们并没有真正给我们任何适当的信息来了解问题所在或它是如何工作的。所以现在我添加了你的建议,它看起来很有效。
    • 看起来 Siteground 允许您在 cron 作业中使用 wp-cli(有关更多详细信息,请参阅此 tutorial)。可能比直接使用php 更好。并且不要忘记在您的wp-config.php(即define('DISABLE_WP_CRON', true);)中禁用WP-Cron。 WP 事件现在是否正确运行?
    猜你喜欢
    • 1970-01-01
    • 2012-07-17
    • 2014-02-22
    • 2018-11-23
    • 1970-01-01
    • 2017-09-13
    • 1970-01-01
    • 2017-09-05
    • 1970-01-01
    相关资源
    最近更新 更多