Php Laravel json api的可重复作业
我正在MySQL上编写Laravel json API。假设用户在我的数据库中创建记录。我想做的是在创建此记录24小时后执行某种操作。我可以使用:Php Laravel json api的可重复作业,php,mysql,laravel,delayed-job,Php,Mysql,Laravel,Delayed Job,我正在MySQL上编写Laravel json API。假设用户在我的数据库中创建记录。我想做的是在创建此记录24小时后执行某种操作。我可以使用:AfterInsertJob::dispatch()->delay(now()->addHours(24))。但我需要一次又一次地执行此操作,直到记录存在。那我该怎么做呢?我应该在工作中分派工作吗?我的意思是我应该在AfterInsertJob内部调度AfterInsertJob?我可以使用计划,但是如何在插入作业后停止该计划?为什么要使用作业来完成任
AfterInsertJob::dispatch()->delay(now()->addHours(24))代码>。但我需要一次又一次地执行此操作,直到记录存在。那我该怎么做呢?我应该在工作中分派工作吗?我的意思是我应该在AfterInsertJob
内部调度AfterInsertJob
?我可以使用计划
,但是如何在插入作业后停止该计划?为什么要使用作业来完成任务。只需运行一个定时命令,检查您的任何需求
在用户创建的记录上添加标志。在您编写并执行所需任务的命令中选中此标志。如果用户执行任何他需要执行的操作,则设置该标志,您的命令将忽略该条目。如果没有,则在设置之前将执行此操作
如果在创建后24小时内需要,您可以检查创建日期(以及该日期的倍数)和标志。
但也有其他的方法
更新:
在阅读了你的评论之后,我有了另一个更适合你的想法。你可以用两样东西
耽搁
重试次数/最大尝试次数
延迟
是一个名为why dispatching的方法
最大尝试次数
是作业类的专有名称,名称为`
您的作业将检查任何必须检查的内容,如果用户未满足要求,您将让作业失败。如果是这样,它将被推回到队列中,延迟24小时。这将重复进行,直到达到“最大尝试次数”为止。为什么要使用作业来完成任务。只需运行一个定时命令,检查您的任何需求
在用户创建的记录上添加标志。在您编写并执行所需任务的命令中选中此标志。如果用户执行任何他需要执行的操作,则设置该标志,您的命令将忽略该条目。如果没有,则在设置之前将执行此操作
如果在创建后24小时内需要,您可以检查创建日期(以及该日期的倍数)和标志。
但也有其他的方法
更新:
在阅读了你的评论之后,我有了另一个更适合你的想法。你可以用两样东西
耽搁
重试次数/最大尝试次数
延迟
是一个名为why dispatching的方法
最大尝试次数
是作业类的专有名称,名称为`
您的作业将检查任何必须检查的内容,如果用户未满足要求,您将让作业失败。如果是这样,它将被推回到队列中,延迟24小时。这将重复进行,直到达到“最大尝试次数”。您可以在AfterInsertJob->handle中,在执行时创建新队列:
$need_to_work = true;
.....
if( $need_to_work ){
AfterInsertJob::dispatch()->delay(3);
}
您可以在AfterInsertJob->handle中,在执行时创建新队列:
$need_to_work = true;
.....
if( $need_to_work ){
AfterInsertJob::dispatch()->delay(3);
}
但我不想永远每24小时重复一次这个任务,我想重复这个任务5-6次,之后我不想让调度程序什么都不做,但我不想永远每24小时重复一次这个任务,我想重复这个任务5-6次,之后我不想调度程序什么都不做很好地了解延迟()
param那里:)我在使用sleep(3)
之前^^很高兴知道delay()
param那里:)我在使用sleep(3)
之前^^