[李景山php]每天laravel-20160830|CallQueuedHandler
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[李景山php]每天laravel-20160830|CallQueuedHandler相关的知识,希望对你有一定的参考价值。
<?php namespace Illuminate\Events; use Illuminate\Contracts\Queue\Job; use Illuminate\Contracts\Container\Container; class CallQueuedHandler {// Call Queued Handler /** * The container instance. * * @var \Illuminate\Contracts\Container\Container */ protected $container;// a container instance. /** * Create a new job instance. * * @param \Illuminate\Contracts\Container\Container $container * @return void */ public function __construct(Container $container)// this is a interface { $this->container = $container;// use this container that is Container } /** * Handle the queued job. * * @param \Illuminate\Contracts\Queue\Job $job * @param array $data * @return void */ public function call(Job $job, array $data)// do some thing for this job, handle the queued job. {// Job $job is a interface , $data is a array, $handler = $this->setJobInstanceIfNecessary(// set Job Instance if necessary $job, $this->container->make($data[‘class‘]) );// this handler will be make if it necessary // $job, $this->container to make $data class call_user_func_array( [$handler, $data[‘method‘]], unserialize($data[‘data‘]) );// call_user_func_array if (! $job->isDeletedOrReleased()) {// if this job need be released or deleted $job->delete(); } } /** * Set the job instance of the given class if necessary. * * @param \Illuminate\Contracts\Queue\Job $job * @param mixed $instance * @return mixed */ protected function setJobInstanceIfNecessary(Job $job, $instance) { if (in_array(‘Illuminate\Queue\InteractsWithQueue‘, class_uses_recursive(get_class($instance)))) { $instance->setJob($job); }// if in the necessary array data, we will set this job. return $instance; // return this instance }//set the job be instance of the given class, if necessary.! /** * Call the failed method on the job instance. * * @param array $data * @return void */ public function failed(array $data) { $handler = $this->container->make($data[‘class‘]);// make handler if (method_exists($handler, ‘failed‘)) {// if has this function , to use it call_user_func_array([$handler, ‘failed‘], unserialize($data[‘data‘])); } }//call the failed method on the job instance. }
本文出自 “专注php” 博客,请务必保留此出处http://jingshanls.blog.51cto.com/3357095/1789390
以上是关于[李景山php]每天laravel-20160830|CallQueuedHandler的主要内容,如果未能解决你的问题,请参考以下文章
[李景山php]每天laravel-20161028|Translator.php
[李景山php]每天laravel-20161107|PhpEngine.php
[李景山php]每天laravel-20161106|EngineResolver.php
[李景山php]每天laravel-20161108|ShareErrorsFromSession.php