private function ActivitySendEmailJobType::prepareBatch in Open Social 10.3.x
Same name and namespace in other branches
- 10.1.x modules/custom/activity_send/modules/activity_send_email/src/Plugin/AdvancedQueue/JobType/ActivitySendEmailJobType.php \Drupal\activity_send_email\Plugin\AdvancedQueue\JobType\ActivitySendEmailJobType::prepareBatch()
- 10.2.x modules/custom/activity_send/modules/activity_send_email/src/Plugin/AdvancedQueue/JobType/ActivitySendEmailJobType.php \Drupal\activity_send_email\Plugin\AdvancedQueue\JobType\ActivitySendEmailJobType::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 ActivitySendEmailJobType::prepareBatch()
- ActivitySendEmailJobType::process in modules/
custom/ activity_send/ modules/ activity_send_email/ src/ Plugin/ AdvancedQueue/ JobType/ ActivitySendEmailJobType.php
File
- modules/
custom/ activity_send/ modules/ activity_send_email/ src/ Plugin/ AdvancedQueue/ JobType/ ActivitySendEmailJobType.php, line 328
Class
- ActivitySendEmailJobType
- Advanced Queue Job to process email workers and send them to SendGrid.
Namespace
Drupal\activity_send_email\Plugin\AdvancedQueue\JobTypeCode
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,
];
// Instead of creating a Queue item we use Advanced Queue.
$job = Job::create('activity_send_email_worker', $batch_data);
if ($job instanceof Job) {
$queue = Queue::load('default');
$queue
->enqueueJob($job);
}
}
}