Ale*_*ati 5 wordpress cron wpmu
我正在使用WP Cron从插件中安排网络范围的cron.
无论从哪个博客激活,我都想每小时运行一次.最重要的是,我需要阻止cron从网络上的不同站点多次运行.
有没有办法使用WordPress调度系统设置它?
多站点上的 wp-cron 依赖于(子)域,因此每个实例都是独立的。因此,来自 \xc2\xa0a.site.com 的调用与来自 b.site.com 的调用是完全独立的实例
\n\n这意味着,默认情况下,当您让插件在多个实例上运行时,无法阻止它在每个网络上运行多次,如果这意味着,默认情况下,如果激活 cron 的代码可以从该网络中的任何站点运行,
\n\n我可以想到几种方法来解决这个问题:
\n\n1)(这未经测试,但我认为它可能有效)您可以在 wp-config 中定义一个名为 WP_CRON_LOCK_TIMEOUT 的常量,您可以将其定义为 3600。这意味着所有cron 进程只能每小时运行一次。不确定这是否是您所追求的选择。
\n\n2) 停止 wp-cron 自行运行,然后设置一个服务器 cron 作业,在 crontab 中每小时触发一次 wp-cron。你可以在 wp-config 中定义(\'DISABLE_WP_CRON\', true);\n然后在 crontab 中执行\nurl http://site.com/wp-cron.php\n每 3600 运行一次秒(或 wget 而不是curl)
\n\n3) 您可以设置一个网络范围的站点选项,该选项会在 wp-cron 首次运行时更新。您需要在运行 cron 作业的脚本中构建一个检查来获取此选项,并查看存储的时间是否少于 3600 秒前。如果是,则不允许 cron 运行。如果不是,则运行 cron 并使用当前时间更新站点范围选项。(请参阅 add_site_option() update_site_option() 和 get_site_option() 本质上与其单站点对应项相同,但是是网络范围的)
\n\n4) 有一个“高级”插件,它基本上会生成一个 PHP 后台进程,该进程独立于任何访问您网站的人运行。默认情况下,它每 60 秒运行一次,但更改它很容易。http://codecanyon.net/item/improved-cron/176543
\n\nwp-cron.php 并没有真正为您提供任何操作或过滤器,它确实设置了您可能会尝试测试的瞬态,但我不认为这是前进的方向。
\n\n有一些非常有用(免费)的 cron 插件:
\n\nhttp://wordpress.org/extend/plugins/wp-crontrol/
\n\nhttp://wordpress.org/extend/plugins/wp-cron-control/
\n\nhttp://wordpress.org/extend/plugins/cron-view/
\n| 归档时间: |
|
| 查看次数: |
3455 次 |
| 最近记录: |