我的目标 - 检查是否作业已经在队列中并带有指定的参数。 让我们说,我为用户ID 1添加了工作。 之后,另一个管理员想要为用户ID 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']);
更新状态,在使用此更新之前检查状态