Ejemplo n.º 1
0
 /**
  * @param string $queue
  *
  * @return self
  */
 public function useQueue($queue)
 {
     if ($this->using != $queue) {
         $this->using = $queue;
         $this->queue = $this->client->getQueueRef($queue);
     }
     return $this;
 }
Ejemplo n.º 2
0
 /**
  * Execute the console command.
  *
  * @return void
  */
 public function fire()
 {
     $queue = $this->argument('queue');
     $connection = $this->option('connection');
     $config = config("queue.connections.{$connection}");
     if (!$queue) {
         $queue = $config['queue'];
     }
     $client = new Client($config['endpoint'], $config['key'], $config['secret']);
     $queue = $client->getQueueRef($queue);
     $hasMessage = true;
     while ($hasMessage) {
         $this->info('Peeking messages (Polling...)');
         try {
             $response = $queue->batchPeekMessage(15);
             if ($response->getMessages()) {
                 $hasMessage = true;
             } else {
                 $hasMessage = false;
             }
         } catch (Exception $e) {
             $this->info('no messages');
             break;
         }
         $response = $queue->batchReceiveMessage(new BatchReceiveMessageRequest(15, 30));
         $handles = [];
         /**
          * @var  \Aliyun\MNS\Model\Message $message
          */
         foreach ($response->getMessages() as $message) {
             $handles[] = $message->getReceiptHandle();
         }
         $response = $queue->batchDeleteMessage($handles);
         if ($response->isSucceed()) {
             foreach ($handles as $handle) {
                 $this->info(sprintf("The message: %s deleted success", $handle));
             }
         }
     }
 }