Example: Create subscription through a topic use Google\Cloud\ServiceBuilder; $cloud = new ServiceBuilder(); $pubsub = $cloud->pubsub(); $topic = $pubsub->topic('my-topic-name'); $subscription = $topic->subscription('my-new-subscription'); Create subscription through PubSubClient use Google\Cloud\PubSub\PubSubClient; $pubsub = new PubSubClient([ 'projectId' => 'my-awesome-project' ]); $subscription = $pubsub->subscription( 'my-new-subscription', 'my-topic-name' );
상속: use trait ResourceNameTrait
 public function __construct(Subscription $subscription, $job, LoggerInterface $logger)
 {
     // [START callback]
     $callback = function ($response) use($job, $subscription, $logger) {
         $ackIds = [];
         $messages = json_decode($response->getBody(), true);
         if (isset($messages['receivedMessages'])) {
             foreach ($messages['receivedMessages'] as $message) {
                 $attributes = $message['message']['attributes'];
                 $logger->info(sprintf('Message received for book ID "%s" ', $attributes['id']));
                 // Do the actual work in the LookupBookDetailsJob class
                 $job->work($attributes['id']);
                 $ackIds[] = $message['ackId'];
             }
         }
         // Acknowledge the messsages have been handled
         if (!empty($ackIds)) {
             $subscription->acknowledgeBatch($ackIds);
         }
     };
     // [END callback]
     $this->callback = $callback;
     $this->subscription = $subscription;
     $this->connection = new AsyncConnection();
 }
 public function testInfoNoRequest()
 {
     $sub = ['subscription' => 'projects/project-id/subscriptions/subscription-name', 'topic' => 'projects/project-id/topics/topic-name'];
     $this->connection->getSubscription()->shouldNotBeCalled();
     $subscription = new Subscription($this->connection->reveal(), 'project-id', 'subscription-name', 'topic-name', true, $sub);
     $res = $subscription->info();
     $this->assertEquals($res, $sub);
 }
예제 #3
0
 public function testIam()
 {
     $subscription = new Subscription($this->connection->reveal(), 'subscription-name', 'topic-name', 'project-id');
     $this->assertInstanceOf(Iam::class, $subscription->iam());
 }