Laravel 5.2 在添加新作业之前检查排队的作业

Laravel 5.2 check queued jobs before add new one

我的目标 - 检查作业是否已在具有指定参数的队列中。 比方说,我为用户 ID 1 添加了工作。 之后,另一个管理员想要为用户 ID 1 添加相同的作业。 如何预防?

在作业排队时将用户状态更改为已排队状态。

在将用户推送到作业之前,请检查 ID 是否已存在且状态 = 已排队,如果存在则不要将其排队。

不知道你已经拥有什么,代码明智,但这里有一个例子:

在我自己的一个项目中它看起来像这样

$oCampaignCustomer->status = ModelCampaignCustomer::STATUS_INVITE_EMAIL_QUEUED;
$oCampaignCustomer->save();

其中 $oCampaignCustomer 是模型。 你也可以像

这样查询
DB::table('forms')
->where('campaign_customer_id', $id)
->update(['status' => '1']);

要更新状态,请在使用此更新之前先检查状态