File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff 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}
You can’t perform that action at this time.
0 commit comments