You are here

private function ActivitySendEmailWorker::prepareBatch in Open Social 10.3.x

Same name and namespace in other branches
  1. 10.0.x modules/custom/activity_send/modules/activity_send_email/src/Plugin/QueueWorker/ActivitySendEmailWorker.php \Drupal\activity_send_email\Plugin\QueueWorker\ActivitySendEmailWorker::prepareBatch()
  2. 10.1.x modules/custom/activity_send/modules/activity_send_email/src/Plugin/QueueWorker/ActivitySendEmailWorker.php \Drupal\activity_send_email\Plugin\QueueWorker\ActivitySendEmailWorker::prepareBatch()
  3. 10.2.x modules/custom/activity_send/modules/activity_send_email/src/Plugin/QueueWorker/ActivitySendEmailWorker.php \Drupal\activity_send_email\Plugin\QueueWorker\ActivitySendEmailWorker::prepareBatch()

Prepares the batch processing for this queue item.

Parameters

array $data: Array of batch data.

array $user_ids_per_language: Array of user IDs.

string|null $langcode: Language code.

1 call to ActivitySendEmailWorker::prepareBatch()
ActivitySendEmailWorker::processItem in modules/custom/activity_send/modules/activity_send_email/src/Plugin/QueueWorker/ActivitySendEmailWorker.php
Works on a single queue item.

File

modules/custom/activity_send/modules/activity_send_email/src/Plugin/QueueWorker/ActivitySendEmailWorker.php, line 306

Class

ActivitySendEmailWorker
An activity send email worker.

Namespace

Drupal\activity_send_email\Plugin\QueueWorker

Code

private function prepareBatch(array $data, array $user_ids_per_language, $langcode = NULL) {

  // Split up by 50.
  $batches = array_chunk($user_ids_per_language, 50);

  // Create items for this queue again for further processing.
  foreach ($batches as $key => $batch_recipients) {

    // Create same queue item, but with IDs of just 50 users.
    $batch_data = [
      'entity_id' => $data['entity_id'],
      'recipients' => $batch_recipients,
      'langcode' => $langcode,
    ];
    $queue = $this->queueFactory
      ->get('activity_send_email_worker');
    $queue
      ->createItem($batch_data);
  }
}