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

时间:2016-09-06 13:48:53

标签: laravel laravel-5.2 laravel-queue

我的目标 - 检查是否作业已经在队列中并带有指定的参数。 让我们说,我为用户ID 1添加了工作。 之后,另一个管理员想要为用户ID 1添加相同的作业。 如何防止这种情况?

1 个答案:

答案 0 :(得分:0)

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

在将用户推送到作业之前,请检查ID是否已存在且状态为“已排队”,如果是,则不对其进行排队。

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

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

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

$oCampaignCustomer是模型的地方。 你也可以像

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

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