我做了一份工作
JobController
在Laravel 5.6中,作业应接收雄辩模型的实例,但它不接收!
作业控制器部件:
try {
$merk = merk_vertalen::find(1);
} catch (ModelNotFoundException $e) {
return back()->withErrors('Merk niet gevonden in de administratie');
}
rdw_retrieve_merk::dispatch($merk)
->OnQueue('rdw_data')
->delay(now()->addSeconds(5));
作业确实在我的jobs表中排队,但读取序列化数据时,我看不到对相关模型的任何引用!
这是我工作本身的一部分:
class rdw_retrieve_merk implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public $tries = 5;
/**
* Create a new job instance.
*/
public function __construct()
{
}
/**
* Execute the job.
*/
public function handle(merk_vertalen $merk)
{
dd($merk);
}
}
作业表中的信息内容:
{"displayName":"App\\Jobs\\rdw_retrieve_merk","job":"Illuminate\\Queue\\CallQueuedHandler@call","maxTries":5,"timeout":null,"timeoutAt":null,"data":{"commandName":"App\\Jobs\\rdw_retrieve_merk","command":"O:26:\"App\\Jobs\\rdw_retrieve_merk\":8:{s:5:\"tries\";i:5;s:6:\"\u0000*\u0000job\";N;s:10:\"connection\";N;s:5:\"queue\";s:8:\"rdw_data\";s:15:\"chainConnection\";N;s:10:\"chainQueue\";N;s:5:\"delay\";O:25:\"Illuminate\\Support\\Carbon\":3:{s:4:\"date\";s:26:\"2018-06-18 11:20:37.736566\";s:13:\"timezone_type\";i:3;s:8:\"timezone\";s:16:\"Europe\/Amsterdam\";}s:7:\"chained\";a:0:{}}"}}
转储的结果是模型的空实例。
作业rdw-retrieve-merk应该在其他地方检索信息,但基于通过模型传递给作业的数据。在实际版本中,使用的是一组严肃的语句,而不是dd($merk),但这与我认为的问题无关。