我正在开发一项用户安排推文的服务,例如我想在明天中午12:30发布推文。怎么办? cron job是最好的方法吗?比如每5分钟运行一次cronjob,看看是否有推文在这段时间内发布?还有其他选择吗?
答案 0 :(得分:2)
运行cron作业绝对是最简单的解决方案,但是还有其他方法可用,其中一种方法是使用像Amazons SQS这样的队列
这使您可以简单地将事物放入队列中以便稍后处理,默认情况下,它们会立即以准备好立即处理的状态添加到队列中,但是您可以使用时间戳将项目添加到队列中,它们应保持休眠状态直到。这将是您的用户预定义的推文时间。
然后,您可以运行一个不断收听队列的脚本,以查找需要发送的任何新推文,只要队列项可用,就会对其进行处理。
这方面的缺点当然是它更省力,但优点是你可以更容易扩展,因为你可以有多台机器处理推文而且他们不会发送两次相同的推文(而如果两台机器正在运行同样的cron,他们都有机会发出推文)