运行PHP脚本在一定的(动态)时间?cronjob的替代方案


Run PHP script at a certain ( dynamic ) time ? Alternatives to cronjob

我正在开发一个用户安排推文的服务,例如我想在明天下午12:30发布一条推文。怎么才能做到呢?cron工作是实现这一目标的最佳方式吗?比如每5分钟运行一次cronjob,看看在这段时间内是否有tweet要发布?有其他选择吗?

运行cron作业绝对是最简单的解决方案,但是还有其他方法可用,其中一种方法是使用amazon SQS

这样的队列。

这允许您简单地将事情扔到队列中稍后处理,默认情况下,它们会立即以准备立即处理的状态添加到队列中,但是您可以将项目添加到队列中,并设置它们应该保持休眠状态的时间戳,直到。这将是您的用户预定义的tweet时间。

然后您可以运行一个脚本,该脚本不断地侦听需要发送的任何新tweet的队列,一旦队列项可用,它将被处理。

这样做的缺点当然是它更努力,好处是你可以更容易地扩展,因为你可以有多台机器处理推文,他们永远不会发送相同的推文两次(然而,如果两台机器运行相同的cron,有机会他们都发送推文)