PHP (Laravel 5.4) - 一旦 post 达到特定年龄,更新数据库中的条目
PHP (Laravel 5.4) - As soon as a post hits a certain age, update entry in database
我只是需要一些关于如何处理这个问题的建议。
基本上,该应用程序包含一个竞价平台,用户可以在该平台上对商品进行竞价,直到 post 12 小时。然后 "post" 的状态设置为关闭,不再允许投标。所以,我的问题是:
不断寻找已存在 12 小时(需要在准确的秒关闭)的 post 并更新数据库的最佳方法是什么?一旦用户尝试加载它并执行检查,只更新 post 是否理想?
那是行不通的。
考虑您有一个项目需要在 23:30
过期的场景
如果您依赖用户来访问该项目,那么也有可能没有人会访问该项目并且它将保持这种状态。
Laravel 有一个强大的 Queue
系统,您可以在其中安排要执行的作业。例如,您可以在创建新项目后恰好 12 小时将作业安排到 运行。
所以这应该有效:
$job = (new ExpireItem($item))
->delay(Carbon::now()->addHours(12));
更多信息在 documentation
我只是需要一些关于如何处理这个问题的建议。
基本上,该应用程序包含一个竞价平台,用户可以在该平台上对商品进行竞价,直到 post 12 小时。然后 "post" 的状态设置为关闭,不再允许投标。所以,我的问题是:
不断寻找已存在 12 小时(需要在准确的秒关闭)的 post 并更新数据库的最佳方法是什么?一旦用户尝试加载它并执行检查,只更新 post 是否理想?
那是行不通的。
考虑您有一个项目需要在 23:30
如果您依赖用户来访问该项目,那么也有可能没有人会访问该项目并且它将保持这种状态。
Laravel 有一个强大的 Queue
系统,您可以在其中安排要执行的作业。例如,您可以在创建新项目后恰好 12 小时将作业安排到 运行。
所以这应该有效:
$job = (new ExpireItem($item))
->delay(Carbon::now()->addHours(12));
更多信息在 documentation