为了账号安全,请及时绑定邮箱和手机立即绑定

每天在特定时间运行一个函数

每天在特定时间运行一个函数

PHP
慕仙森 2022-01-08 14:52:43
我有一个从 API 获取数据的函数。我想在每天的特定时间运行此功能。我已经使用下面的代码来实现这一点,但是每分钟运行一次。我在 5 分钟间隔内使用此代码进行预定测试。我的 API 代码太长了。我在那里只使用测试目的示例代码。register_activation_hook(__FILE__, 'my_activation');add_action( 'wp', 'my_activation' );function my_activation() {    if (! wp_next_scheduled ( 'my_hourly_event' )) {    wp_schedule_event(time(), 'hourly', 'my_hourly_event');    }}add_action('my_hourly_event', 'do_this_hourly');function do_this_hourly() {    // do something every hour    $t          = time();    $user_login = 'test-'.$t;    $user_email = 'test-'.$t.'@yahoo.com';    $user_pass  = '123456';    $userdata = compact( 'user_login', 'user_email', 'user_pass' );    $user_id = wp_insert_user( $userdata ) ;    // On success.    if ( ! is_wp_error( $user_id ) ) {        echo "User created : ". $user_id;    }else{        echo "<h1>User already exsist</h1>";    }}register_deactivation_hook(__FILE__, 'my_deactivation');function my_deactivation() {    wp_clear_scheduled_hook('my_hourly_event');}
查看完整描述

2 回答

?
慕沐林林

TA贡献2016条经验 获得超9个赞

您可以使用 crontab 来执行此操作,例如每天 06:02。

crontab -e 然后加 6   2   *   *   *   curl http://api


查看完整回答
反对 回复 2022-01-08
?
GCT1015

TA贡献1827条经验 获得超4个赞

wp_schedule_event 函数中的用法如下所示:


使用 strtotime() 函数,以便您可以指定一天中的时间 - 它将使用今天的日期和您指定的时间。


wp_schedule_event( strtotime('16:20:00'), 'daily', 'my_daily_event' );


编辑


并且您必须在预定后设置下一个预定时间


if (!wp_next_scheduled('my_daily_event')) {

    $time = strtotime('today'); //returns today midnight

    $time = $time + 72000; //add an offset for the time of day you want, keeping in mind this is in GMT.

    // Ex: $time = strtotime("+1 day");

    wp_schedule_event($time, 'daily', 'my_daily_event');

}


查看完整回答
反对 回复 2022-01-08
  • 2 回答
  • 0 关注
  • 161 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信