我有一个Grails应用程序,需要设置一个计时器,它将在给定时间通过WebSocket启动广播,具有以下规定:
- 计时器可以延期或取消
- 可能会有几个不同的计时器同时运行(但具有不同的"上下文")
- 应支持群集模式,即计时器只会触发一次,无论群集中我的应用程序的实例数量是多少。
我提出的解决方案是:
- 使用Quartz创建一个普通作业,没有任何给定日期,以便何时触发
- 我想设置一个计时器的那一刻,我用 cronExpression 创建一个新的作业实例,在给定时间触发它,然后持续保存
- 我是否需要推迟计时器,我会从数据库中取出它并将 cronExpression 重写为新值。
我担心的是:
- 有没有其他方法可以设置定时器"在Grails中,可能没有使用Quartz作业的概念?
- 它是possible to have multiple instances of a Quartz job,但它是使用Quartz的正确方法,还是应该避免?也许我应该使用custom triggers代替?
- 如果我按照我之前解释的方式进行操作,是否可以在群集模式下工作(多个实例)?
醇>