laravel:恢复后得到工作ID

时间:2016-05-30 14:02:49

标签: queue laravel-5.2 jobs

如何在laravel 5.2中访问job id? 关于this link已经尝试了getJobId(),但没有效果。

当我使用dd()获取日志时,他们是id,但可能是受保护的。所以我无法访问它。

#job: {#459 +"id": 233 +"queue": "offers" +"payload": "{"job":"Illuminate\\Queue\\CallQueuedHandler@call","data":....}" +"attempts": 50 +"reserved": 0 +"reserved_at": null +"available_at": 1464615540 +"created_at": 1464615540 }

2 个答案:

答案 0 :(得分:5)

在L5.3中,您可以通过这种方式获得Job Id

在你的工作班内

<?php

namespace App\Jobs;

use App\Models\User;
use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;

class ParseUniversityData implements ShouldQueue
{
    use InteractsWithQueue, Queueable, SerializesModels;

    protected $user;

    /**
     * Create a new job instance.
     *
     * @param $userId
     */
    public function __construct(User $user)
    {
        $this->user = $user;
    }
    /**
     * Execute the job.
     *
     * @throws \Exception
     * @return void
     */
    public function handle()
    {
        $jobId = $this->job->getJobId(); // this how you can get job id
    }
}

您调度作业的方法(在本例中我在控制器中使用操作方法)

    public function someExampleAction(Request $request)
    {
        $requestData = $request->all();

        $job = (new someExampleJob(
            $requestData['property'], $user
        ));

        $jobId = dispatch($job); // this is variable job id
    }

答案 1 :(得分:0)

public function handle()
{
   $jobid=$this->job->getJobId();
}

您可以通过此方法获取作业ID