В процессе построения пакетной обработки вы задаете операции, которые необходимо обработать. Если вы используйте BatchBuilder
, то это происходит при помощи метода addOperation()
, где вы задаете функцию обратного вызова и данные на обработку.
В процессе выполнения пакетной обработки, будет произведен вызов каждой функции обратного вызова с данными переданными для неё. Каждая операция обрабатывается индивидуально.
В указанную вами функцию или метод в качестве аргументов будут переданные указанные вами данные, а самым последним, дополнительно, всегда передается аргумент &$context
.
В массиве $context
вы сможете найти следующую информацию:
-
results
: Массив с результатами работы операций. Обычно в данном массиве хранится то, какие элементы были обработаны. -
sandbox
: Массив для хранения данных между итерациями и операциями. -
finished
: Число от 0 до 1 отражающее степень завершенности выполнения текущей операции. Например 0.5 = 50%. -
message
: При помощи данного параметра вы можете переопределить статусное сообщение для пользователя.
Пример:
public function processOperation($data, &$context) {
// Do something with $data.
$context['results']++;
}
¶Ссылки
- Drupal 8: Batch API, Niklan, 2018