我们有一个应用程序,我们希望运行一个脚本,就像我们在控制台窗口中一样,可以访问应用程序库和上下文,但我们需要像cron作业一样定期运行它。
虽然永久答案显然是Quartz的工作,但我们需要在能够修补应用程序之前执行此操作。
是否有可用的东西给我们提供与console-plugin相同的环境但可以通过命令行或没有UI运行?
答案 0 :(得分:2)
你可以运行像web界面那样的控制台脚本,但只需要像这样的卷曲:
curl -F 'code=
class A {
def name
}
def foo = new A(name: "bar")
println foo.name
' localhost:8080/console/execute
您将获得响应,因为控制台将在下面打印。
答案 1 :(得分:1)
关于@mwaisgold上面的解决方案,我做了几个快速补充,帮助了。我在脚本中添加了一些处理身份验证的内容,加上curl的-F标志导致使用GroovyShell的evaluate方法导致一个模糊的方法重载错误,所以我通过使用-d来解决这个问题:
#/bin/bash
curl -i -H "Content-type: application/x-www-form-urlencoded" -c cookies.txt -X POST localhost:8080/myapp/j_spring_security_check -d "j_username=admin&j_password=admin"
curl -i -b cookies.txt -d 'code=
int iterations = 0
while (iterations < 10) {
log.error "********** Console Cron Test ${iterations++} ***********"
}
log.error "********** Console Cron Test Complete ***********"
' localhost:8080/myapp/console/execute