我有一个Rails应用程序,它基本上抓取了很多RSS提要。每个馈送具有爬行间隔,例如3小时。
问题是,由于它每天都会抓取越来越多的Feed(越来越多的内容会被添加),有时3小时结束时,Feed会被延迟的作业实际抓取。这导致了越来越多的工作。我希望我的问题很清楚。
所以我想要做的基本上是保存每个Feed的当前作业ID,并在将该Feed的新作业添加到队列之前检查作业是否已完成。
最好的方法是什么?
答案 0 :(得分:0)
在延迟作业表中添加一个布尔变量,例如“in_progress”。始终在作业开始时,将此属性设置为true。如果作业已完成,请将其更新为false。如果“in_progress”属性为false,则仅启动作业,否则跳过此Feed。