作为后台服务持续轮询

Continuously poll as a background service

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

我要查找的内容略有不同。我想不断更新用户列表,所以我想创建一个无限循环,它将 运行 作为后台服务不断获取下一个用户,进行 REST 调用,更新用户,然后获取下一个用户.

我考虑过实施 quartz,但因为正在进行 REST 调用,所以我不想拥有多个线程 运行ning 或将其设置为某种节奏。我宁愿一个线程持续 运行 并且当用户更新时它继续到下一个用户。

如果有的话,我想要一个 quartz 作业来检查以确保循环仍在正确循环并在线程由于某种原因终止时重新启动它。

最后,我用quartz实现了这个。有一个设置允许我避免多个线程同时来自 运行,我从来没有 运行 遇到线程死掉的问题,除非没有处理异常。

def concurrent = false

来自Quartz Plugin Documentation

"By default Jobs are executed in concurrent fashion, so new Job execution can start even if previous execution of the same Job is still running. If you want to override this behavior you can use 'concurrent' property, in this case Quartz's StatefulJob will be used"