当前位置: 首页>>代码示例>>PHP>>正文


PHP Connection\AMQPConnection类代码示例

本文整理汇总了PHP中PhpAmqpLib\Connection\AMQPConnection的典型用法代码示例。如果您正苦于以下问题:PHP AMQPConnection类的具体用法?PHP AMQPConnection怎么用?PHP AMQPConnection使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了AMQPConnection类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: listen

 /**
  * Process incoming request to generate pdf invoices and send them through 
  * email.
  */
 public function listen()
 {
     $this->log->addInfo('Begin listen routine');
     $connection = new AMQPConnection('localhost', 5672, 'guest', 'guest');
     $channel = $connection->channel();
     $channel->queue_declare('invoice_queue', false, true, false, false);
     /**
      * don't dispatch a new message to a worker until it has processed and 
      * acknowledged the previous one. Instead, it will dispatch it to the 
      * next worker that is not still busy.
      */
     $channel->basic_qos(null, 1, null);
     /**
      * indicate interest in consuming messages from a particular queue. When they do 
      * so, we say that they register a consumer or, simply put, subscribe to a queue.
      * Each consumer (subscription) has an identifier called a consumer tag
      */
     $channel->basic_consume('invoice_queue', '', false, false, false, false, array($this, 'process'));
     $this->log->addInfo('Consuming from queue');
     while (count($channel->callbacks)) {
         $this->log->addInfo('Waiting for incoming messages');
         $channel->wait();
     }
     $channel->close();
     $connection->close();
 }
开发者ID:aslijiasheng,项目名称:SPRabbitMQ,代码行数:30,代码来源:WorkerReceiver.php

示例2: getChannel

 /**
  * getChannel
  *
  * @param string $connection
  *
  * @return AMQPChannel
  */
 protected function getChannel($connection)
 {
     if (isset($this->channels[$connection])) {
         return $this->channels[$connection];
     }
     if (!isset($this->connections[$connection])) {
         throw new \InvalidArgumentException(sprintf('Unknown connection "%s". Available: [%s]', $connection, implode(', ', array_keys($this->connections))));
     }
     if (!isset($this->channels[$connection])) {
         $this->channels[$connection] = array();
     }
     if (isset($this->connections[$connection]['ssl']) && $this->connections[$connection]['ssl']) {
         if (empty($this->connections[$connection]['ssl_options'])) {
             $ssl_opts = array('verify_peer' => true);
         } else {
             $ssl_opts = array();
             foreach ($this->connections[$connection]['ssl_options'] as $key => $value) {
                 if (!empty($value)) {
                     $ssl_opts[$key] = $value;
                 }
             }
         }
         $conn = new AMQPSSLConnection($this->connections[$connection]['host'], $this->connections[$connection]['port'], $this->connections[$connection]['login'], $this->connections[$connection]['password'], $this->connections[$connection]['vhost'], $ssl_opts);
     } else {
         $conn = new AMQPConnection($this->connections[$connection]['host'], $this->connections[$connection]['port'], $this->connections[$connection]['login'], $this->connections[$connection]['password'], $this->connections[$connection]['vhost']);
     }
     //$conn->connect();
     $this->channels[$connection] = $conn->channel();
     return $this->channels[$connection];
 }
开发者ID:antoox,项目名称:SwarrotBundle,代码行数:37,代码来源:AmqpLibFactory.php

示例3: 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

示例4: processvideo

 function processvideo()
 {
     $this->load->config('amqp');
     $exchange = 'video';
     $queue = 'video_q';
     $consumer_tag = 'consumer';
     $connection = new AMQPConnection($this->config->item('host'), $this->config->item('port'), $channel = $this->config->item('user'), $channel = $this->config->item('pass'), "/");
     $channel = $connection->channel();
     $channel->queue_declare($queue, false, true, false, false);
     $callback = function ($msg) {
         print_r($msg);
         die;
         $collection = $this->mongo_db->db->selectCollection('video');
         $result = $collection->update(["video_id" => $msg->video_id], ["status" => "processing"]);
         sleep(range(5, 10));
         $start_date = new DateTime('2000-01-01 ' . $msg->start_time);
         $since_start = $start_date->diff(new DateTime('2012-09-11 ' . $msg->end_time));
         $video_len = $since_start->h . ":" . $since_start->i . ":" . $since_start->s;
         $result = $collection->update(["video_id" => $msg->video_id], ["status" => "done", "link" => "https://youtube.com?dffd", "video_len" => $video_len]);
         $msg->delivery_info['channel']->basic_ack($msg->delivery_info['delivery_tag']);
     };
     $channel->basic_qos(null, 1, null);
     $channel->basic_consume($queue, '', false, false, false, false, $callback);
     while (count($channel->callbacks)) {
         $channel->wait();
     }
     $channel->close();
     $connection->close();
 }
开发者ID:Toilon,项目名称:test,代码行数:29,代码来源:Worker.php

示例5: getConnection

 protected function getConnection()
 {
     $connection = new AMQPConnection('localhost', 5672, 'guest', 'guest');
     $channel = $connection->channel();
     $channel->queue_declare('email_queue', false, false, false, false);
     return $channel;
 }
开发者ID:artemzakholodilo,项目名称:murkatest,代码行数:7,代码来源:AMQPHandle.php

示例6: createServiceWithName

 /**
  * Create service with name
  *
  * @param ServiceLocatorInterface $serviceLocator
  * @param $name
  * @param $requestedName
  * @return mixed
  */
 public function createServiceWithName(ServiceLocatorInterface $serviceLocator, $name, $requestedName)
 {
     $name = substr($requestedName, strlen(self::MANAGER_PREFIX));
     $config = $serviceLocator->get('config');
     $workerConfig = $config['workers'][$name];
     if (!$serviceLocator->has($workerConfig['manager']['director'])) {
         throw new \RuntimeException("Could not load {$workerConfig['manager']['director']}");
     }
     $director = $serviceLocator->get($workerConfig['manager']['director']);
     if (!$director instanceof DirectorInterface) {
         throw new \RuntimeException("Could not load {$workerConfig['manager']['director']}");
     }
     $rabbitMqSettings = isset($workerConfig['rabbitmq_settings']) ? $workerConfig['rabbitmq_settings'] : $config['rabbitmq_settings'];
     $conn = new AMQPConnection($rabbitMqSettings['host'], $rabbitMqSettings['port'], $rabbitMqSettings['username'], $rabbitMqSettings['password']);
     // Bind to the generic exchange
     $eventChannel = $conn->channel();
     $exchange = $workerConfig['manager']['general']['exchange']['name'];
     $exchangeType = $workerConfig['manager']['general']['exchange']['type'];
     $eventQueueName = $workerConfig['manager']['general']['queue']['name'];
     $routingKey = isset($workerConfig['manager']['general']['queue']['routing_key']) ? $workerConfig['manager']['general']['queue']['routing_key'] : null;
     $eventChannel->queue_declare($eventQueueName, false, true, false, false);
     $eventChannel->exchange_declare($exchange, $exchangeType, false, false, true);
     $eventChannel->queue_bind($eventQueueName, $exchange, $routingKey);
     // Bind to the one specific for the workers
     $processorQueueName = $workerConfig['manager']['worker']['queue']['name'];
     $workerExchange = $workerConfig['manager']['worker']['exchange']['name'];
     $workerExchangeType = $workerConfig['manager']['worker']['exchange']['type'];
     $workerChannel = $conn->channel();
     $workerChannel->exchange_declare($workerExchange, $workerExchangeType, false, false, false);
     $workerChannel->queue_declare($processorQueueName, false, true, false, false);
     $workerChannel->queue_bind($processorQueueName, $workerExchange);
     return new DirectedManager($conn, $eventChannel, $eventQueueName, $workerChannel, $workerExchange, $processorQueueName, $director);
 }
开发者ID:FlexShopper,项目名称:expressive-stdlib,代码行数:41,代码来源:DirectedManagerAbstractFactory.php

示例7: notasAction

 public function notasAction()
 {
     $this->mqconf = new \Phalcon\Config\Adapter\Ini(CONFIG_PATH . DIRS . "ini/mq.ini");
     $connection = new AMQPConnection($this->mqconf->host, $this->mqconf->port, $this->mqconf->user, $this->mqconf->pasw);
     $channel = $connection->channel();
     $channel->queue_declare(SITESLUG . '_eliminar_noticia', false, true, false, false);
     echo ' [*] Servicio listener para despublicacion ,  CTRL+C para cancelar', "\n";
     $callback = function ($msg) {
         try {
             $node = json_decode($msg->body);
             var_dump($node);
             $publicacion = new \Rpp\Services\Unpublish\Noticia((int) $node->nid);
             $di = new Phalcon\DI();
             $di->set('viewCache', $this->viewCache);
             $publicacion->setDI($di);
             $publicacion->builder();
         } catch (\Exception $e) {
             var_dump($e);
         }
         break;
     };
     $channel->basic_consume(SITESLUG . '_eliminar_noticia', '', false, true, false, false, $callback);
     while (count($channel->callbacks)) {
         $channel->wait();
     }
 }
开发者ID:tresemece,项目名称:monte,代码行数:26,代码来源:EliminarTask.php

示例8: publish_msg

 public function publish_msg($data)
 {
     $conn = new AMQPConnection(HOST, PORT, USER, PASS, VHOST);
     $ch = $conn->channel();
     $msg = new AMQPMessage(json_encode($data), array('content_type' => 'text/plain', 'delivery_mode' => 2));
     $rtn = $ch->basic_publish($msg, "inStock");
 }
开发者ID:ohjack,项目名称:newErp,代码行数:7,代码来源:purchaseOrder.action.php

示例9: makeAction

 public function makeAction()
 {
     $this->mqconf = new \Phalcon\Config\Adapter\Ini(CONFIG_PATH . DIRS . "ini/mq.ini");
     $connection = new AMQPConnection($this->mqconf->host, $this->mqconf->port, $this->mqconf->user, $this->mqconf->pasw);
     $channel = $connection->channel();
     $channel->queue_declare(SITESLUG . '_sondeo', false, true, false, false);
     echo ' [*] Servicio listener de sondeos iniciado ,  CTRL+C para cancelar', "\n";
     $callback = function ($msg) {
         try {
             $vars = json_decode($msg->body);
             var_dump($vars);
             \Rpp\Services\Get\Elecciones::$pattern = null;
             \Rpp\Services\Get\Elecciones::$sondeos = null;
             $sondeo = \Rpp\Services\Get\Elecciones::get($vars->id);
             var_dump($sondeo);
         } catch (\Exception $e) {
             var_dump($e);
         }
         break;
     };
     $channel->basic_consume(SITESLUG . '_sondeo', '', false, true, false, false, $callback);
     while (count($channel->callbacks)) {
         $channel->wait();
     }
 }
开发者ID:tresemece,项目名称:monte,代码行数:25,代码来源:SondeosTask.php

示例10: portadaAction

 public function portadaAction()
 {
     $this->mqconf = new \Phalcon\Config\Adapter\Ini(CONFIG_PATH . DIRS . "ini/mq.ini");
     $connection = new AMQPConnection($this->mqconf->host, $this->mqconf->port, $this->mqconf->user, $this->mqconf->pasw);
     $channel = $connection->channel();
     $channel->queue_declare(SITESLUG . '_publicacion_destacados', false, true, false, false);
     echo ' [*] Servicio listener para la publicacion de destacados ,  CTRL+C para cancelar', "\n";
     $callback = function ($msg) {
         try {
             $node = json_decode($msg->body);
             print_r($node);
             $destacados = new \Rpp\Services\Publish\Destacados(@$node->slug);
             $di = new Phalcon\DI();
             $di->set('viewCache', $this->viewCache);
             $destacados->setDI($di);
             $destacados->load();
         } catch (\Exception $e) {
             var_dump($e);
         }
         break;
     };
     $channel->basic_consume(SITESLUG . '_publicacion_destacados', '', false, true, false, false, $callback);
     while (count($channel->callbacks)) {
         $channel->wait();
     }
 }
开发者ID:tresemece,项目名称:monte,代码行数:26,代码来源:DestacadosTask.php

示例11: procesoAction

 public function procesoAction()
 {
     $this->mqconf = new \Phalcon\Config\Adapter\Ini(CONFIG_PATH . DIRS . "ini/mq.ini");
     $connection = new AMQPConnection($this->mqconf->host, $this->mqconf->port, $this->mqconf->user, $this->mqconf->pasw);
     $channel = $connection->channel();
     $channel->queue_declare(SITESLUG . '_widget', false, true, false, false);
     echo ' [*] Servicio listener para widgets ,  CTRL+C para cancelar', "\n";
     $callback = function ($msg) {
         try {
             $data = json_decode($msg->body);
             echo $data->widget;
             $method = "widget_{$data->widget}";
             unset($data->widget);
             if (method_exists($this, $method)) {
                 $this->{$method}($data);
             }
         } catch (\Exception $e) {
             var_dump($e);
         }
     };
     $channel->basic_consume(SITESLUG . '_widget', '', false, true, false, false, $callback);
     while (count($channel->callbacks)) {
         $channel->wait();
     }
 }
开发者ID:tresemece,项目名称:monte,代码行数:25,代码来源:WidgetTask.php

示例12: check

 /**
  * Perform the check
  *
  * @see \ZendDiagnostics\Check\CheckInterface::check()
  * @return Failure|Success
  */
 public function check()
 {
     if (!class_exists('PhpAmqpLib\\Connection\\AMQPConnection')) {
         return new Failure('PhpAmqpLib is not installed');
     }
     $conn = new AMQPConnection($this->host, $this->port, $this->user, $this->password, $this->vhost);
     $conn->channel();
     return new Success();
 }
开发者ID:atulhere,项目名称:zendPractice,代码行数:15,代码来源:RabbitMQ.php

示例13: publish

function publish($data)
{
    $conn = new AMQPConnection(HOST, PORT, USER, PASS, VHOST);
    $ch = $conn->channel();
    $ch->queue_declare("oversold_queue", false, true, false, false);
    $ch->queue_bind("oversold_queue", "oversold");
    $msg = new AMQPMessage(json_encode($data), array('content_type' => 'text/plain', 'delivery_mode' => 2));
    $rtn = $ch->basic_publish($msg, "oversold");
}
开发者ID:ohjack,项目名称:newErp,代码行数:9,代码来源:auto_trigger_listing.php

示例14: 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

示例15: isRunning

 /**
  * Returns whether or not the connection is running
  *
  * @return bool
  */
 public function isRunning()
 {
     if (null === $this->connection) {
         return false;
     }
     return $this->connection->isConnected();
 }
开发者ID:graphaware,项目名称:php-simplemq,代码行数:12,代码来源:AbstractRunner.php


注:本文中的PhpAmqpLib\Connection\AMQPConnection类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。