моя операция
<?php$operations[] = array('add_domain', array($domain));?>
мой батч
<?php
batch_set(array(
'operations' => $operations,
'finished' => 'add_devsite_finished',
'title' => 'Добавление домена',
'init_message' => 'Подготовка данных',
'progress_message' => 'Выполнено @current из @total.',
'error_message' => 'Произошла ошибка.',
));
?>
<?php
function add_domain($domain, &$context) {
$result['msg'] = 'ошибка'
$result['stasus'] = false;
//мое условие
if(!$result['stasus']){
//не знаю как прервать
}
// Сообщение выводимое под прогресс-баром после окончания текущей операции
$context['message'] = 'Выполнение операции';
// Эта информация будет доступна в mymodule_batch_finished
$context['results']['operations'] = $result['msg'];
sleep(2);
}
?>
Комментарии
Вернуть $context['finished'] = 1;
<?php
* @param $context['finished']
* A float number between 0 and 1 informing the processing engine
* of the completion level for the operation.
*
* 1 (or no value explicitly set) means the operation is finished
* and the batch processing can continue to the next operation.
*
* Batch API resets this to 1 each time the operation callback is called.
?>
by https://www.drupal.org/docs/7/api/batch-api/overview
это я пробовал, написал в своей функции
add_domain
$context['finished'] = 0;
batch остановился и висит, но как как прервать batch с ошибкой
http://php.net/manual/ru/function.trigger-error.php
http://php.net/manual/ru/language.exceptions.php
https://api.drupal.org/api/drupal/includes%21common.inc/function/drupal_...
может быт есть пример рабочего решения или напишите как это должно выглядеть?
написал фот так, теперь bacth запускает эту функцию. но прогресс зависает на на стадии подготовки
никакого визуального завершения операции с ошибкой не происходит
вот содержание функции
пробовал менять последние три строчки местами эффекта нет.
<?php
function add_domain($domain, &$context) {
$context['results']['operations'][] = 'сообщение о статусе выполняемой функции';
$context['finished'] = 0;
trigger_error ('ошибка');
drupal_exit('ошибка');
//return send_data($query);
} ?>
Да ёлки!...
Прочтите внимательно первое сообщение, и найдите свою ошибку.
$context['finished'] = 1;