Heim  >  Artikel  >  Backend-Entwicklung  >  [李景山php]每天laravel-20160830|CallQueuedHandler

[李景山php]每天laravel-20160830|CallQueuedHandler

WBOY
WBOYOriginal
2016-06-20 12:25:41739Durchsuche

<?phpnamespace 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.}


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn