连续轮询作为后台服务

时间:2015-07-05 05:06:24

标签: rest loops grails quartz-scheduler

所以我正在阅读这个主题: Continuously poll a REST service in Grails

我正在寻找的是略有不同。我想不断更新用户列表,所以我想创建一个无限循环,它将作为后台服务运行,不断抓取下一个用户,进行REST调用,更新用户,然后抓取下一个用户。

我考虑过实现quartz,但是由于正在进行REST调用,我不想让多个线程运行或者在某些节奏上设置它。我宁愿一个线程不断运行,当用户更新时,它会继续运行到下一个用户。

如果有的话,我想要一个石英作业检查以确保循环仍然正确循环并重新启动它如果线程因某种原因死亡。

1 个答案:

答案 0 :(得分:0)

最后,我用石英实现了这一点。有一个设置允许我避免多个线程同时运行,并且我永远不会遇到线程死亡的问题,除非没有处理异常。

def concurrent = false

来自Quartz Plugin Documentation

  

"默认情况下,作业以并发方式执行,因此即使先前执行相同作业仍在运行,新作业也可以开始执行。如果您想要覆盖此行为,则可以使用'并发'属性,在这种情况下,将使用Quartz的StatefulJob"