【发布时间】:2013-05-01 07:32:46
【问题描述】:
我有一个 Rails 应用程序,它基本上可以抓取大量 RSS 提要。每个提要都有一个抓取间隔,例如 3 小时。
问题是,因为它每天都在抓取越来越多的提要(添加的提要越来越多),有时 3 小时后提要才真正被延迟作业抓取。这导致越来越多的工作。我希望我的问题很清楚。
所以我想要做的基本上是保存每个提要的当前作业 ID,并在将该提要的新作业添加到队列之前检查作业是否已经完成。
最好的方法是什么?
【问题讨论】:
我有一个 Rails 应用程序,它基本上可以抓取大量 RSS 提要。每个提要都有一个抓取间隔,例如 3 小时。
问题是,因为它每天都在抓取越来越多的提要(添加的提要越来越多),有时 3 小时后提要才真正被延迟作业抓取。这导致越来越多的工作。我希望我的问题很清楚。
所以我想要做的基本上是保存每个提要的当前作业 ID,并在将该提要的新作业添加到队列之前检查作业是否已经完成。
最好的方法是什么?
【问题讨论】:
在延迟作业表中添加一个布尔变量,例如“in_progress”。总是在作业开始时,将此属性设置为 true。如果作业完成,请将其更新为 false。仅在“in_progress”属性为 false 时启动作业,否则跳过此提要。
【讨论】: