Php Laravel json api的可重复作业

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?我可以使用计划,但是如何在插入作业后停止该计划?为什么要使用作业来完成任

我正在MySQL上编写Laravel json API。假设用户在我的数据库中创建记录。我想做的是在创建此记录24小时后执行某种操作。我可以使用:
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)
    之前^^