post() публичный Метод

Post new job to the queue. This will trigger event EVENT_BEFORE_POST and EVENT_AFTER_POST.
public post ( UrbanIndo\Yii2\Queue\Job &$job ) : boolean
$job UrbanIndo\Yii2\Queue\Job The job.
Результат boolean Whether operation succeed.
Пример #1
0
 /**
  * Endpoint to post a job to queue.
  * @return mixed
  * @throws \yii\web\ServerErrorHttpException When failed to post.
  */
 public function actionPost()
 {
     $job = $this->createJobFromRequest();
     /* @var $queue \UrbanIndo\Yii2\Queue\Queue */
     if ($this->queue->post($job)) {
         return ['status' => 'okay', 'jobId' => $job->id];
     } else {
         throw new \yii\web\ServerErrorHttpException('Failed to post job');
     }
 }
 /**
  * @param \yii\base\Event $event The event to handle.
  * @return void
  */
 public function routeEvent(\yii\base\Event $event)
 {
     $eventName = $event->name;
     $handler = $this->events[$eventName];
     if (is_callable($handler)) {
         $handler = call_user_func($handler, $this->owner);
     }
     $route = $handler[0];
     unset($handler[0]);
     $data = $handler;
     $this->queue->post(new \UrbanIndo\Yii2\Queue\Job(['route' => $route, 'data' => $data]));
 }
 /**
  * Call the behavior owner to handle the deferred event.
  * @param \yii\base\Event $event
  */
 public function postDeferredEvent($event)
 {
     $object = clone $this->owner;
     if (!$this->_hasEventHandlers && !$object instanceof DeferredEventInterface) {
         throw new \Exception("Model is not instance of DeferredEventInterface");
     }
     $handlers = $this->_hasEventHandlers ? $this->events : false;
     $eventName = $event->name;
     if (isset($this->_serializer)) {
         $serializer = $this->_serializer;
     } else {
         $serializer = null;
     }
     $this->queue->post(new \UrbanIndo\Yii2\Queue\Job(['route' => function () use($object, $eventName, $handlers, $serializer) {
         if ($handlers) {
             $handler = $handlers[$eventName];
             if ($serializer !== null) {
                 try {
                     $unserialized = $serializer->unserialize($handler);
                     $unserialized($object);
                 } catch (\Exception $exc) {
                     return call_user_func([$object, $handler]);
                 }
             } else {
                 return call_user_func([$object, $handler]);
             }
         } else {
             if ($object instanceof DeferredEventInterface) {
                 /* @var $object DeferredEventInterface */
                 return $object->handleDeferredEvent($eventName);
             } else {
                 throw new \Exception("Model doesn't have handlers for the event or is not instance of DeferredEventInterface");
             }
         }
     }]));
 }