深入探索Grails调度与NoSQL数据库的应用
1. 高级调度:程序化暂停和恢复有状态作业
Quartz调度器允许你暂停和恢复单个作业、作业组或整个调度器。为了使作业易于控制,需要将其放入一个组中。以下是一个可暂停作业的示例:
package com.grailsinaction class ControllableJob { def concurrent = false def group = "myServices" static triggers = { simple repeatInterval: 5000 // 每5秒执行一次作业 } def execute(context) { log.error "Controllable job running.. ${context.jobDetail.key.dump()}" } }可以看到,在作业中指定了一个组属性,后续可通过调度器根据组名访问该作业。
要获取调度器的引用,可以通过标准的Grails注入模式实现。以下是一个用于程序化操作作业的控制器示例:
package com.grailsinaction class JobAdminController { def jobManagerService def index = { redirect(action:'show') } def show = { def