當前位置: 首頁>>代碼示例>>PHP>>正文


PHP AMQPChannel::queue_declare方法代碼示例

本文整理匯總了PHP中PhpAmqpLib\Channel\AMQPChannel::queue_declare方法的典型用法代碼示例。如果您正苦於以下問題:PHP AMQPChannel::queue_declare方法的具體用法?PHP AMQPChannel::queue_declare怎麽用?PHP AMQPChannel::queue_declare使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在PhpAmqpLib\Channel\AMQPChannel的用法示例。


在下文中一共展示了AMQPChannel::queue_declare方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。

示例1: runAndWait

 /**
  * {@inheritdoc}
  */
 public function runAndWait(Task $task, $wait = 0, callable $completed = null, callable $timedout = null, callable $errored = null)
 {
     $waitForResult = $wait > 0;
     // Event: before dispatching the task
     $this->triggerEvent(self::EVENT_BEFORE_TASK_DISPATCHED, [$task]);
     // Event: before serialization
     $this->triggerEvent(self::EVENT_BEFORE_TASK_SERIALIZATION, [$task]);
     $messageOptions = ['delivery_mode' => 2];
     $replyExchange = null;
     $replyQueue = null;
     if ($waitForResult) {
         // Create a temporary exchange (durable, autodelete) for communicating with the worker
         $replyExchange = uniqid('tmp');
         $this->channel->exchange_declare($replyExchange, 'fanout', false, true, true);
         // Create and bind a queue for the dispatcher (our queue) (exclusive queue)
         list($replyQueue, , ) = $this->channel->queue_declare('', false, false, true);
         $this->channel->queue_bind($replyQueue, $replyExchange);
         // Create and bind a queue for the worker (durable non-exclusive queue)
         list($workerReplyQueue, , ) = $this->channel->queue_declare('', false, true, false);
         $this->channel->queue_bind($workerReplyQueue, $replyExchange);
         $messageOptions['reply_to'] = $replyExchange . ';' . $workerReplyQueue;
     }
     $message = new AMQPMessage(serialize($task), $messageOptions);
     $this->channel->basic_publish($message, '', $this->queue);
     if ($waitForResult) {
         $this->waitForTask($wait, $replyExchange, $replyQueue, $completed, $timedout, $errored);
     }
 }
開發者ID:basuritas-php,項目名稱:php-Work,代碼行數:31,代碼來源:RabbitMQWorkDispatcher.php

示例2: declareQueue

 /**
  * Declare amqp queue
  * @param $queueName
  * @param bool|false $passive
  * @param bool|false $durable
  * @param bool|false $exclusive
  * @param bool|false $auto_delete
  */
 public function declareQueue($queueName, $passive = false, $durable = false, $exclusive = false, $auto_delete = false)
 {
     if (!in_array($queueName, $this->declaredQueues)) {
         $this->channel->queue_declare($queueName, $passive, $durable, $exclusive, $auto_delete);
         $this->declaredQueues[] = $queueName;
     }
 }
開發者ID:ysaroka,項目名稱:uploader,代碼行數:15,代碼來源:AmqpWrapper.php

示例3: __construct

 /**
  * @param AMQPStreamConnection $conn
  */
 public function __construct(AMQPStreamConnection $conn)
 {
     $this->conn = $conn;
     $this->channel = $conn->channel();
     list($this->queueName) = $this->channel->queue_declare('', false, true, true, false);
     $this->channel->exchange_declare(self::TOPIC_NAME, self::MESSAGE_TYPE, false, true, true, false);
 }
開發者ID:evertharmeling,項目名稱:brouwkuyp-control,代碼行數:10,代碼來源:Manager.php

示例4: setup

 /**
  * @throws Exception\Configuration
  */
 public function setup()
 {
     $this->connect();
     $exchange = $this->getProperty('exchange');
     if (empty($exchange)) {
         throw new Exception\Configuration('Please check your settings, exchange is not defined.');
     }
     /*
         name: $exchange
         type: topic
         passive: false
         durable: true // the exchange will survive server restarts
         auto_delete: false //the exchange won't be deleted once the channel is closed.
     */
     $this->channel->exchange_declare($exchange, $this->getProperty('exchange_type'), $this->getProperty('exchange_passive'), $this->getProperty('exchange_durable'), $this->getProperty('exchange_auto_delete'), $this->getProperty('exchange_internal'), $this->getProperty('exchange_nowait'), $this->getProperty('exchange_properties'));
     $queue = $this->getProperty('queue');
     if (!empty($queue) || $this->getProperty('queue_force_declare')) {
         /*
             name: $queue
             passive: false
             durable: true // the queue will survive server restarts
             exclusive: false // queue is deleted when connection closes
             auto_delete: false //the queue won't be deleted once the channel is closed.
             nowait: false // Doesn't wait on replies for certain things.
             parameters: array // Extra data, like high availability params
         */
         /** @var ['queue name', 'message count',] queueInfo */
         $this->queueInfo = $this->channel->queue_declare($queue, $this->getProperty('queue_passive'), $this->getProperty('queue_durable'), $this->getProperty('queue_exclusive'), $this->getProperty('queue_auto_delete'), $this->getProperty('queue_nowait'), $this->getProperty('queue_properties'));
         $this->channel->queue_bind($queue ?: $this->queueInfo[0], $exchange, $this->getProperty('routing'));
     }
     // clear at shutdown
     register_shutdown_function([get_class(), 'shutdown'], $this->channel, $this->connection);
 }
開發者ID:bschmitt,項目名稱:laravel-amqp,代碼行數:36,代碼來源:Request.php

示例5: __construct

 /**
  * @param AMQPStreamConnection $connection
  * @param string $queueName
  */
 public function __construct(AMQPStreamConnection $connection, $queueName)
 {
     $this->connection = $connection;
     $this->channel = $this->connection->channel();
     $this->queueName = $queueName;
     $this->channel->queue_declare($this->queueName, false, true, false, false);
 }
開發者ID:MarvinKlemp,項目名稱:RabbitMq,代碼行數:11,代碼來源:Publisher.php

示例6: __construct

 private function __construct()
 {
     $this->connection = new AMQPConnection($this->connection_host, $this->connection_port, $this->connection_user, $this->connection_password);
     $this->channel = $this->connection->channel();
     $this->channel->queue_declare('task_queue_persistent', false, true, false, false);
     return $this;
 }
開發者ID:neTpyceB,項目名稱:TMCms-core,代碼行數:7,代碼來源:Connector.php

示例7: setupConnection

 protected function setupConnection()
 {
     Yii::trace('Connecting to broker...', __METHOD__);
     $this->connection = new AMQPConnection($this->host, $this->port, $this->user, $this->password, $this->vhost, $this->insist, $this->login_method, $this->login_response, $this->locale, $this->connection_timeout, $this->read_write_timeout, $this->context);
     $this->channel = $this->connection->channel();
     $this->channel->queue_declare($this->queue, false, true, false, false);
 }
開發者ID:highestgoodlikewater,項目名稱:yii2-mailqueue,代碼行數:7,代碼來源:EmailTaskController.php

示例8: setUp

 public function setUp()
 {
     $this->conn = $this->createConnection();
     $this->ch = $this->conn->channel();
     $this->ch->exchange_declare($this->exchange_name, 'direct', false, false, false);
     list($this->queue_name, , ) = $this->ch->queue_declare();
     $this->ch->queue_bind($this->queue_name, $this->exchange_name, $this->queue_name);
 }
開發者ID:vongrad,項目名稱:loanbroker,代碼行數:8,代碼來源:AbstractPublishConsumeTest.php

示例9: createQueue

 /**
  * @param string $title
  * @param boolean $durable
  * @param boolean $autoDelete
  * @param array $arguments
  * @throws Exception
  */
 public function createQueue($title, $durable = false, $autoDelete = false, $arguments = null)
 {
     if (!$this->channel) {
         throw new Exception("Channel didn't created");
     }
     $this->channel->queue_declare($title, false, $durable, false, $autoDelete, false, $arguments);
     $this->channel->basic_qos(null, 1, null);
 }
開發者ID:artox-lab,項目名稱:rabbitmq-wrapper,代碼行數:15,代碼來源:RabbitMQ.php

示例10: setUpAmqp

 protected function setUpAmqp()
 {
     $this->conn = new AMQPSocketConnection($_SERVER['AMQP_HOST'], $_SERVER['AMQP_PORT'], $_SERVER['AMQP_USER'], $_SERVER['AMQP_PASS'], $_SERVER['AMQP_VHOST']);
     $this->channel = $this->conn->channel();
     $this->channel->exchange_declare('event_band.test.exchange', 'topic');
     $this->channel->queue_declare('event_band.test.event');
     $this->channel->queue_bind('event_band.test.event', 'event_band.test.exchange', 'event.#');
 }
開發者ID:Gangstel,項目名稱:EventBandAmqpLibTransport,代碼行數:8,代碼來源:AmqpLibDriverTest.php

示例11: setUp

 public function setUp()
 {
     $this->conn = new AMQPConnection(HOST, PORT, USER, PASS, VHOST);
     $this->ch = $this->conn->channel();
     $this->ch->exchange_declare($this->exchange_name, 'direct', false, false, false);
     list($this->queue_name, , ) = $this->ch->queue_declare();
     $this->ch->queue_bind($this->queue_name, $this->exchange_name, $this->queue_name);
 }
開發者ID:vongrad,項目名稱:loanbroker,代碼行數:8,代碼來源:FileTransferTest.php

示例12: start

 /**
  * @param string $queue
  * @param HttpRequest $httpRequest
  */
 public function start($queue, HttpRequest $httpRequest)
 {
     $this->queue = $queue;
     $this->httpRequest = $httpRequest;
     $this->connection = new AMQPConnection($this->host, $this->port, $this->user, $this->pass);
     $this->channel = $this->connection->channel();
     list(, , $consumer_count) = $this->channel->queue_declare($this->queue, false, false, false, false);
     $this->consumer_count = $consumer_count;
 }
開發者ID:alistairshaw,項目名稱:ambitiousmail-relay,代碼行數:13,代碼來源:RabbitMQQueue.php

示例13: getChannel

 private function getChannel()
 {
     if ($this->channel) {
         return $this->channel;
     }
     $this->channel = $this->connection->channel();
     $this->channel->queue_declare($this->queue, false, false, false, false);
     return $this->channel;
 }
開發者ID:tomaj,項目名稱:hermes,代碼行數:9,代碼來源:LazyRabbitMqDriver.php

示例14: getChannel

 /**
  * Creates (if not yet created) and returns an AMQP channel.
  *
  * @return \PhpAmqpLib\Channel\AMQPChannel
  */
 protected function getChannel()
 {
     if (null === $this->channel) {
         $this->channel = $this->connection->channel();
         $this->channel->queue_declare($this->queueName, false, false, false, false);
         $this->channel->basic_qos(null, 1, null);
     }
     return $this->channel;
 }
開發者ID:smolowik,項目名稱:concurrent-spider-bundle,代碼行數:14,代碼來源:Queue.php

示例15: setUp

 /**
  * Set up AMQP connection.
  */
 public function setUp()
 {
     $container = $this->getContainer();
     $exchangeName = 'general';
     $connection = new AMQPConnection($container->getParameter('ongr_task_messenger.publisher.default.amqp.host'), $container->getParameter('ongr_task_messenger.publisher.default.amqp.port'), $container->getParameter('ongr_task_messenger.publisher.default.amqp.user'), $container->getParameter('ongr_task_messenger.publisher.default.amqp.password'));
     $this->channel = $connection->channel();
     list($queueName, , ) = $this->channel->queue_declare();
     $this->channel->queue_bind($queueName, $exchangeName, explode('.', gethostname())[0]);
     $this->channel->basic_consume($queueName, getmypid(), false, true, true, true, [$this, 'verifyMessage']);
 }
開發者ID:GrandLTU,項目名稱:TaskMessengerBundle,代碼行數:13,代碼來源:AMQPPublisherTest.php


注:本文中的PhpAmqpLib\Channel\AMQPChannel::queue_declare方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。