Skip to content

Commit db9519b

Browse files
author
brunoroux
committed
added publishMessages
1 parent 74f99b4 commit db9519b

1 file changed

Lines changed: 41 additions & 0 deletions

File tree

src/Provider/IronMqProvider.php

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -323,4 +323,45 @@ public function queueInfo()
323323

324324
return null;
325325
}
326+
327+
/**
328+
* Publishes multiple message at once
329+
*
330+
* @param array $messages
331+
* @param array $options
332+
*
333+
* @return array
334+
*/
335+
public function publishMessages(array $messages, array $options = [])
336+
{
337+
$options = $this->mergeOptions($options);
338+
$publishStart = microtime(true);
339+
340+
if (!$this->queueExists()) {
341+
$this->create();
342+
}
343+
344+
$encodedMessages = [];
345+
foreach ($messages as $message) {
346+
$encodedMessages[] = json_encode($messages + ['_qpush_queue' => $this->name]);
347+
}
348+
349+
$result = $this->ironmq->postMessages(
350+
$this->getNameWithPrefix(),
351+
$encodedMessages,
352+
[
353+
'timeout' => $options['message_timeout'],
354+
'delay' => $options['message_delay'],
355+
'expires_in' => $options['message_expiration']
356+
]
357+
);
358+
359+
$context = [
360+
'message_ids' => $result->ids,
361+
'publish_time' => microtime(true) - $publishStart
362+
];
363+
$this->log(200, "Messages have been published.", $context);
364+
365+
return $result->ids;
366+
}
326367
}

0 commit comments

Comments
 (0)