Grails从计划作业调用控制器方法

Grails从计划作业调用控制器方法,grails,controller,job-scheduling,Grails,Controller,Job Scheduling,在我的grails应用程序中,我希望从调度作业类调用控制器中包含的方法 读这个[http://www.grails.org/Job+调度+(Quartz)],我可以看到数据源和服务在作业类中是按名称自动连接的。这似乎是不可能的控制器默认情况下,可能是因为控制器不应该做这种事情 顺便问一下,有没有办法从grails中的作业中调用控制器方法? 这对你来说会是一个如此糟糕的做法吗(为什么) 提前感谢,, Luca这是一种不好的做法,因为Controller旨在处理web请求,包括用户会话和所有内容 Q

在我的grails应用程序中,我希望从调度作业类调用控制器中包含的方法

读这个[http://www.grails.org/Job+调度+(Quartz)],我可以看到数据源和服务在作业类中是按名称自动连接的。这似乎是不可能的控制器默认情况下,可能是因为控制器不应该做这种事情

顺便问一下,有没有办法从grails中的作业中调用控制器方法? 这对你来说会是一个如此糟糕的做法吗(为什么)

提前感谢,,
Luca

这是一种不好的做法,因为Controller旨在处理web请求,包括用户会话和所有内容

Quartz作业中没有用户会话

其次,将功能保留在控制器中本身是一件坏事——控制器最好只“控制”对其他业务逻辑方法的调用

我建议您将所有功能移动到
src
中的服务、域类或POGO类


当然,您可以调用
新的MyController().method()
,但默认情况下不会向控制器中注入bean。

感谢您的回答,我同意您和我的控制器正是以这种方式工作的,只是控制流和调用实际执行任务的服务。问题是,我正在寻找一种方法来避免在正确的流中调用服务时重复代码。可能答案是重构并将所有功能放在src中的一个类中。好吧,服务不会被注入到POGO类中,因此如果是为了控制另一个服务,那么加载所有bean就有点过火了。为什么不将该服务处理逻辑移动到另一个服务中?