Grails quartz->螺纹

时间:2010-10-28 11:38:39

标签: hibernate grails grails-plugin

这是我调用matchService的触发器......

    class TestJob { 
     def matchService

 static triggers = {

  cron name: 'firstThread',  cronExpression: "0 0/1 12-13 ? * THU"
  }

 def group = "threadGroup"


    def execute() {
  matchService.playMatch()
  println "run thread: " + String.format('%tH:%<tM:%<tS.%<tL',System.currentTimeMillis())
    }
}

...这是名为

的服务
class MatchException extends RuntimeException {
 String message
 Match match
}


class MatchService {

     /*
      * Rolls back database changes if errors occur
      */
     static transactional = true

     public void calc(Match m) {
      println m.teamH.name + " - " + m.teamA.name
     }

     public playMatch() {

      List<Match> matchList = new ArrayList()

      Cal.get(1).matches.each{
       match ->
        matchList.add(match)
      }


    for(Match m: matchList) {
       if(!m.validate()) {
        throw new MatchException( message: "match not valid!!" , match:m)
       }
        calc(m)
    }
   }
 }

我想做的是在N个线程中调用方法calc N次以运行synchronized。 是否也可以使用新更改实时更新gsp页面(无需刷新浏览器)? 有人可以帮帮我吗?

2 个答案:

答案 0 :(得分:0)

为什么不在grails应用程序中编写控制器方法并使用javascript和ajax来更新页面。

看一下这个插件,定期用ajax调用服务器来更新html页面

http://github.com/RobertFischer/JQuery-PeriodicalUpdater/

答案 1 :(得分:0)

你不能像在那个例子中那样引用'm'。你需要以某种方式将匹配传递给Runnable。

这是您可以使用background-thread插件为您节省编码的地方。

欢呼声