Wp_Schedule_Single_Event触发的原因是什么?

时间:2011-05-10 作者:Thirlan

这并不像你想象的那么简单。基本上,我有一个C#程序正在访问worpdress站点,而wp\\U时间表似乎没有启动。如果我使用firefox浏览器访问该网站,它似乎会熄灭。Soooo这里有什么区别?究竟是什么原因导致cron着火?是HTTP GET吗?或者浏览器加载的页面中是否有一些脚本或函数?

3 个回复
最合适的回答,由SO网友:tollmanz 整理而成

WP Cron函数实际上不是Cron函数。它不是一个严格按计划运行和执行任务的cron,而是等待前端或管理员加载,检查是否计划了任何作业,然后根据需要激发。要执行cron作业,请加载WPwp-cron.php, 位于根文件夹中。我的理解是,当您访问该站点并计划cron时,会向http://yourdomain.com/wp-cron.php, 它将启动计划的cron作业。我不知道这是如何工作的(我以前读过,但无法再次找到资源),但这个请求是以一种并非所有服务器都能处理的方式发出的,导致它无法工作。我想知道您的问题是否是此请求不是通过对您的站点的GET请求发出的。

作为替代方案,我建议使用GET请求http://yourdomain.com/wp-cron.php. 事实上Professional WordPress Plugin Development, 他们建议:

常用的方法是使用wget加载wp cron。php的时间表。如果您的服务器是基于Linux的,那么cron将已经存在,并且可以使用crontab命令进行调度。如果您的服务器基于Windows,则可以安装wget并创建计划任务来执行它。wget命令的工作方式如下:wgethttp://www.example.com/wp-cron.php 当wget请求wp cron时。php WordPress查找所有计划的cron作业,并根据需要执行。在您的服务器上设置true cron将保证您的cron作业将按计划完美运行,而不会错过任何节拍。

除此之外,您还需要禁用处理cron的默认方式:

define(‘DISABLE_WP_CRON’, true);
关于这一点的另一个讨论可以在这里找到:

http://caramboo.com/2010/03/wordpress-remote-cron-scheduling/

SO网友:MZAweb

您是否遵循重定向?

在cron中。php您可以看到spawn\\u cron函数正在执行

 wp_redirect( add_query_arg(\'doing_wp_cron\', \'\', stripslashes($_SERVER[\'REQUEST_URI\'])) );
我没有与WP cron合作过很多,但这可能会让您走上正确的道路

SO网友:theworldsbestpies

如果您想消除对C#轮询的需要,那么这个无耻的插件(in:)可能会解决您的问题:

Improved Cron

保罗

结束