public function test() { $delayedMessagesTopicName = 'test-delayed-' . rand(); $this->manager = $manager = new Manager($delayedMessagesTopicName); $topicName = 'test-' . rand(); $manager->setDelayedMessagesTopic(array('publish_to' => 'localhost', 'requeue_strategy' => array('max_attempts' => 10, 'delays' => array(50)))); $manager->setTopic($topicName, array('publish_to' => array('localhost'), 'requeue_strategy' => array('max_attempts' => 3, 'delays' => $this->rsDelays))); $pid = pcntl_fork(); if ($pid == -1) { throw new \Exception('fork'); } if ($pid == 0) { $manager->setTopicConsumer($delayedMessagesTopicName, 'default', new DelayedMessagesConsumer($manager)); $manager->consumeDelayedMessagesTopic(5); exit; } $manager->setTopicConsumer($topicName, 'default', $this); $this->messages = array(array('data' => 'data_' . rand(), 'delay' => 2), array('data' => 'data_' . rand(), 'delay' => 1), array('data' => 'data_' . rand(), 'delay' => 0, 'retries' => 2), array('data' => 'data_' . rand(), 'delay' => 3, 'retries' => 1)); foreach ($this->messages as $k => $message) { $manager->getTopic($topicName)->publish($message['data'], $message['delay']); $this->messages[$k]['ts'] = time(); $this->messages[$k]['attempts'] = 0; } $this->loop = $this->readAttribute($this->readAttribute($manager->getTopic($topicName), 'nsq'), 'loop'); $manager->getTopic($topicName)->consume(array(), 7); }