【发布时间】:2014-05-15 12:59:31
【问题描述】:
我想在我的网站上创建一个功能,允许用户在特定时间安排发布。帖子将被放入队列中,然后在指定时间发布。处理此问题的正确方法是什么?我是否需要为每个单独的预定帖子创建单独的 cron 作业?
【问题讨论】:
标签: php post cron scheduled-tasks scheduling
我想在我的网站上创建一个功能,允许用户在特定时间安排发布。帖子将被放入队列中,然后在指定时间发布。处理此问题的正确方法是什么?我是否需要为每个单独的预定帖子创建单独的 cron 作业?
【问题讨论】:
标签: php post cron scheduled-tasks scheduling
通常这是通过一个充当“触发器”的 cron 作业来完成的。该触发器(一个 php 脚本)检查数据库中待处理作业的列表并执行一个或多个。
它可能会为每个作业生成子请求以提高健壮性,但这会增加系统的负载。
在数据库中标记已启动的作业很重要,这样在并发触发进程(例如系统负载)的情况下,单个作业不会启动两次。对于崩溃的作业尤其如此......
您可能还想实施一种锁定策略,以便只允许一个并发触发请求。
【讨论】:
wget 或 curl 向本地 http 服务器发出 http 请求,要么使用 cli 版本的 php。