如何在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
}
答案 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