为什么队列赋值时会出现两个 sql?
控制器代码如下:
// 创建机器人
$robot = Robot::firstOrCreate(['ruid' => request()->input('self_id')]);
// 消息队列
dispatch(new \App\Jobs\BindRobot(request()->all(), $robot))->onQueue('high');
队列代码如下:
class BindRobot implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
protected $robot;
public function __construct($request, $robot)
{
$this->robot = $robot;
}
public function handle()
{
}
}
这是队列的 Queries:
最上面那个 sql 为什么会出现?有没有办法去掉?
处理失败重试次数?
在本例中,请注意我们能够将一个 Eloquent model 直接传递到已排队任务的构造函数中。由于任务所使用的 SerializesModels ,在任务处理时,Eloquent 模型及其加载的关系将被优雅地序列化和非序列化。如果你的队列任务在其构造函数中接受一个 Eloquent 模型,那么只有模型的标识符才会被序列化到队列中。当实际处理任务时,
队列系统将自动重新从数据库中获取完整的模型实例及其加载的关系
。它对你的应用程序来说是完全透明的,并且可以防止在序列化完整的 Eloquent 模型实例时可能出现的问题。请问,这个图片是什么工具看到的
