2013-05-07 37 views
0

我有一个Rails应用程序,基本上抓取了很多RSS提要。每个Feed的抓取时间间隔均为3小时。Ruby on Rails - 延迟工作 - 返回工作编号

问题是,由于它每天都会抓取越来越多的Feed(越来越多地被添加),有时候3个小时已经完成,然后Feed才会被延迟的工作抓取。这导致越来越多的工作。我希望我的问题清楚。

所以我想要做的是基本上保存每个饲料的当前作业ID,并检查作业是否已经完成,然后将该饲料的新作业添加到队列中。

什么是最好的方法来做到这一点?

回答

0

将例如“in_progress”的布尔变量添加到您的延迟作业表中。总是在作业开始时,将此属性设置为true。如果作业完成,请将其更新为false。只有在“in_progress”属性为false的情况下才能启动作业,否则请跳过此提要。