Длительное действие от плагина
Я создаю плагин WordPress, который будет копировать данные сообщений в удаленную базу данных, я знаю, что для передачи всех сообщений потребуется некоторое время.
Как мне создать функцию копирования, чтобы она не прерывалась? В идеале он должен работать в фоновом режиме и показывать некоторое уведомление о завершении.
4
Author: Tomasz Tybulewicz, 2012-11-08
1 answers
Вы могли бы использовать псевдо-cron WordPress и 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.
2
Author: chrisguitarguy, 2012-11-15 03:39:30