【发布时间】:2012-01-09 11:36:22
【问题描述】:
我正在开发一个网络应用程序......我想在触发动作后立即触发工作。如何才能做到这一点 。我正在使用石英插件进行调度。
以及我们如何将数据从作业传递到控制器的操作..
【问题讨论】:
标签: grails controller action quartz-scheduler scheduling
我正在开发一个网络应用程序......我想在触发动作后立即触发工作。如何才能做到这一点 。我正在使用石英插件进行调度。
以及我们如何将数据从作业传递到控制器的操作..
【问题讨论】:
标签: grails controller action quartz-scheduler scheduling
Quartz 用于触发需要定期运行的作业,因此对于需要在加载页面时运行的代码来说并不合适。
如果您希望在调用控制器操作时运行某些代码,只需将其放入操作中!
我们如何将数据从作业传递到控制器的操作。
这听起来像是一个设计缺陷。作业应该永远不需要调用控制器操作,我什至不确定它是否可能。
【讨论】:
如果您的要求是在后台按需执行作业,除了按计划执行之外,Quartz 将允许您执行此操作。在您的控制器或服务中,您只需执行 MyJob.triggerNow(params) 其中 params 是作业的任何参数的映射。
triggerNow() 的返回类型是null,因此没有简单的方法从触发器中获取返回值。
如果您不需要在后台执行代码,则应将 Job 重构为调用一个服务方法,然后可以从您的控制器操作中调用该方法,就像 Don 所说的那样。
【讨论】: