/** * @inheritDoc */ public function enqueue($queueName, Message $message) { $env = new DefaultEnvelope($message); $data = $this->serialize($env); $job = $this->iron->postMessage($queueName, $data, $this->options); return new IronEnvelope($job->id, $env); }
/** * Push a raw payload onto the queue. * * @param string $payload * @param string $queue * @param array $options * @return mixed */ public function pushRaw($payload, $queue = null, array $options = []) { if ($this->shouldEncrypt) { $payload = $this->crypt->encrypt($payload); } return $this->iron->postMessage($this->getQueue($queue), $payload, $options)->id; }
public function testIronSpam() { $iron_mq = new IronMQ(); $i = 0; while ($i < 1000) { $iron_mq->postMessage('MyQueue', "TestMessage number {$i}"); $i++; } echo "\nDone!\n"; }
/** * {@inheritDoc} * * @return int */ public function publish(array $message, array $options = []) { $options = $this->mergeOptions($options); $publishStart = microtime(true); if (!$this->queueExists()) { $this->create(); } $result = $this->ironmq->postMessage($this->getNameWithPrefix(), json_encode($message + ['_qpush_queue' => $this->name]), ['timeout' => $options['message_timeout'], 'delay' => $options['message_delay'], 'expires_in' => $options['message_expiration']]); $context = ['message_id' => $result->id, 'publish_time' => microtime(true) - $publishStart]; $this->log(200, "Message has been published.", $context); return $result->id; }
* @link https://github.com/iron-io/iron_mq_php * @link http://www.iron.io/products/mq * @link http://dev.iron.io/ * @license BSD License * @copyright Feel free to copy, steal, take credit for, or whatever you feel like doing with this code. ;) */ require_once __DIR__ . '/../vendor/autoload.php'; use IronMQ\IronMQ; $ironMQ = new IronMQ(); //$ironMQ->debug_enabled = true; $ironMQ->ssl_verifypeer = false; // Generating a random queue so we don't collide with any existing queues. Feel free to use a proper name $queueName = md5(rand() . time()); $ironMQ->createQueue($queueName, array('message_expiration' => 3600)); // Post a message to a queue $singleMessageResponse = $ironMQ->postMessage($queueName, 'This is a sample message'); var_dump($singleMessageResponse); // Post multiple messages to a single queue $multiMessageResponse = $ironMQ->postMessages($queueName, array('Message 1', 'Message 2')); var_dump($multiMessageResponse); // Delete these messages one at a time $ironMQ->deleteMessage($queueName, $singleMessageResponse->id); foreach ($multiMessageResponse->ids as $messageID) { $ironMQ->deleteMessage($queueName, $messageID); } // Put a new message in the queue for us to work with $ironMQ->postMessage($queueName, 'This is a sample message'); // Retrieve a message from a queue $message = $ironMQ->reserveMessage($queueName); var_dump($message); // Touch a message to keep it around longer, in case you are nearing the timeout
/** * @param string $message * @return bool */ public function enqueue($message, $topic) { $this->queue->postMessage($this->queueName, $message, array('timeout' => $this->timeout, 'expires_in' => $this->expiresIn)); }
$ironMQ->ssl_verifypeer = false; // Generating a random queue so we don't collide with any existing queues. Feel free to use a proper name $queueName = md5(rand() . time()); $ironMQ->createQueue($queueName, array('message_expiration' => 3600)); // Generate a queue to hold the alerts that will be generated $alertQueueName = $queueName . '_alerts'; $ironMQ->createQueue($alertQueueName, array('message_expiration' => 3600)); // Every 200 messages, generate an alert $alert = array('type' => 'progressive', 'direction' => 'asc', 'trigger' => 200, 'queue' => $alertQueueName); $addResponse = $ironMQ->addAlerts($queueName, array($alert)); var_dump($addResponse); // Our Alert queue should be empty $messages = $ironMQ->peekMessage($alertQueueName); var_dump($messages); // Let's generate a bunch of messages to trigger an alert for ($i = 0; $i < 250; $i++) { $ironMQ->postMessage($queueName, 'Test Message' . $i); } // We should now have one $messages = $ironMQ->peekMessage($alertQueueName); var_dump($messages); // To get the existing alerts on a queue, use getQueue() $queueData = $ironMQ->getQueue($queueName); $alerts = $queueData->alerts; // Update the alerts on a queue $alerts[0]->trigger = 500; $updateResponse = $ironMQ->updateAlerts($queueName, $alerts); var_dump($updateResponse); // Clean up our tests $ironMQ->deleteQueue($queueName); $ironMQ->deleteQueue($alertQueueName);