【问题标题】:Wordpress Cron function stops halfway but runs manually?Wordpress Cron 功能中途停止但手动运行?
【发布时间】:2018-01-15 03:52:47
【问题描述】:

为了先介绍一下我的项目背景,我有一个 Wordpress 网站,我通过将 wp-config 调整为:

define('DISABLE_WP_CRON', true);

然后,我在服务器上为 wp-cron 文件设置了一个 cron,以每分钟调用一次该文件,这一直按预期工作,正如我需要的那样。

我使用一个名为“Wp-Crontrol”的插件来设置我自己的对我的函数文件中的各种函数的 cron 调用。

Memory Limit: 2048M

PHP max execution time: 2700

问题

我有一个特别的函数,它从远程源获取报告并循环遍历每一行,使用 $wpdb 类将每一行输入数据库。如果我将该函数放在一个 php 页面上并转到它,该函数会按预期完美运行,并在一段时间后将所有 6900 行输入到数据库中。

我希望它工作的方式是在该函数上运行一个 cron(就像我做很多其他事情一样没有问题)但问题是当我通过 cron 设置它时它似乎只插入3000 行才停止而没有记录错误?

我正在努力弄清楚为什么手动运行它会完美运行,但在夜间执行相同功能的预定 cron 只能完成一半的工作,而无法完成,中途停止?

我已打开所有我能想到的错误日志记录,但没有任何显示?

【问题讨论】:

  • 已经尝试添加ignore_user_abort(true);到功能,但没有帮助。

标签: php wordpress function cron


【解决方案1】:

WordPress“cron”作业与系统 cron 作业不同。例如,除非您有一个高流量的网站,否则几乎不可能使用 WordPress 设置 60 秒的 cron。当有人向系统发出 HTTP 请求时,就会激活 WordPress crons。系统 cron 运行在系统内存中运行的守护程序。它们只是不同的概念,工作方式也不同。

【讨论】:

  • 这就是我禁用 WP Cron 并通过服务器手动运行文件的原因,这是解决您提到的问题的常用技术。这样可以保证 cron 每 60 秒运行一次。
【解决方案2】:

问题是处理时间,但由于某种原因,它根本不会在任何错误消息中标记。在我精简了长流程后,它开始按预期运行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-09
    • 2010-12-23
    • 1970-01-01
    • 1970-01-01
    • 2016-03-29
    • 1970-01-01
    • 2020-05-05
    相关资源
    最近更新 更多