来自插件的长期运行操作

时间:2012-11-08 作者:Tomasz Tybulewicz

我正在创建一个WordPress插件,将帖子数据复制到远程数据库,我知道传输所有帖子需要一段时间。

我应该如何创建复制功能,使其不会超时?理想情况下,它将在后台运行,并在完成时显示一些通知。

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

您可以使用WordPress的伪cron和wp_schedule_single_event.

<?php
// add the action.
add_action(\'wpse71941_cron\', \'wpse71941_long_running\');
function wpse71941_long_running($args)
{
    // might need to call `set_time_limit` here
    set_time_limit(0);

    // do long running stuff here

    // return normal time limit
    if($l = ini_get(\'max_execution_time\'))
        set_time_limit($l);
}

// schedule the event for right now
wp_schedule_single_event(
    time(), 
    \'wpse71941_cron\', 
    array(\'args\' => \'for\', \'callback\' => \'function\')
);
不确定你是否需要打乱时间限制。WP确实调用ignore_user_abort 在cron脚本的顶部。

结束

相关推荐

Wp-content/plugins中的权限问题

我在本地机器上安装了一个WP,试图用插件弄脏我的手。我希望从github克隆一个包含此插件代码的项目。然而,我没有插件内部的权限,作为一个没有su权限的普通用户,我无法做到这一点。(当然,我可以成为根并这样做,但我不认为这是应该的)。然后,默认情况下,WP安装中的文件夹将组设置为“tape”,这对我来说很奇怪。本地WP安装上内部文件夹的正确权限应该是什么?