【问题标题】:Wordpress schedule daily cron run only after first visit?Wordpress 安排每日 cron 仅在首次访问后运行?
【发布时间】:2017-04-11 16:52:28
【问题描述】:
function cronstarter_activation() {
  if( !wp_next_scheduled( 'mycronjob' ) ) {
   wp_schedule_event( strtotime( '00:02:00' ), 'daily', 'mycronjob' );
  }
}
add_action('wp', 'cronstarter_activation');

function my_repeat_function() {
    //My code the same information to database
}
add_action ('mycronjob', 'my_repeat_function');

一切都很好。 我的问题是我在侧边栏中有 php 代码来接收从 cron_job 保存的数据库中存储的信息, 00:02:00之后的新一天访问者第一次访问该站点时,收到的信息是前一天的信息。

我认为当天的第一个访问者,首先看到侧边栏的结果,这是前一天的信息,然后激活cronjob。

这是真的吗?如何在不需要第一个访问者的情况下运行 cronjob?

【问题讨论】:

  • wp_cron() 仅在有人访问您的网站时有效。它必须以某种方式“触发”。如果您想拥有在用户访问时独立运行的自动 cron,您需要在服务器上使用纯 php 设置 cron 作业。检查this answerthis

标签: wordpress cron


【解决方案1】:

是的 WP Cron 有一个很大的警告是它需要有人访问该站点才能运行。例如,如果您将作业安排在凌晨 2 点运行,但凌晨 2 点没有人访问,则它不会在凌晨 2 点运行。当有人在凌晨 2 点之后访问该站点时,它将运行。

更多信息官方:https://codex.wordpress.org/Function_Reference/wp_schedule_event

更多信息公共博客: http://brianshim.com/webtricks/cron-job-wordpress/

如需在系统级别对 cron 作业使用计划进行更多控制: Use PHP to create, edit and delete crontab jobs?

设置/配置会因您的服务器和托管类型而异。

【讨论】:

    猜你喜欢
    • 2019-06-06
    • 2013-09-16
    • 1970-01-01
    • 1970-01-01
    • 2019-06-29
    • 2019-11-21
    • 1970-01-01
    • 1970-01-01
    • 2020-10-26
    相关资源
    最近更新 更多