/**
  * @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);
 }
Esempio n. 2
0
 /**
  * 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;
 }
Esempio n. 3
0
 public function testIronSpam()
 {
     $iron_mq = new IronMQ();
     $i = 0;
     while ($i < 1000) {
         $iron_mq->postMessage('MyQueue', "TestMessage number {$i}");
         $i++;
     }
     echo "\nDone!\n";
 }
Esempio n. 4
0
 /**
  * {@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
Esempio n. 6
0
 /**
  * @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);