首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >石英CronTriggers在阿卡演员使用或不使用骆驼?

石英CronTriggers在阿卡演员使用或不使用骆驼?
EN

Stack Overflow用户
提问于 2011-07-20 15:42:41
回答 1查看 2.5K关注 0票数 7

我有一个Db的石英CronTriggers。我想把整个系统移植到一个基于Akka的后端,我目前正在设计。我正在研究和思考可以做到这一点的方法。

例如,CustomRouteBuilders和其他类似的东西。我尝试了Giovani的优秀的Quartz-Camel-Akka集成示例,给我留下了深刻的印象。现在,我的系统中有多个cron触发器,它们具有不同的和用户创建的cron表达式。

如何使用这种依赖于用户的endpointUri对Camel Consumer Actor系统进行编程?我想了很多选择,但什么也想不出来。

请在这方面帮助我。除了Quartz和Camel之外,我还对其他想法持开放态度。我想坚持使用基于Akka的后端平台。我的系统由用户定义的作业组成,这些作业在用户定义的cron可形成时间触发。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-20 18:31:53

从cron表达式列表(例如,从数据库读取)开始,您可以遍历该列表,并为每个元素启动一个quartz使用者参与者。下面是一个例子:

代码语言:javascript
复制
import akka.actor.Actor
import akka.actor.Actor._
import akka.camel.CamelServiceManager._
import akka.camel.Consumer

object CronExample {

  def main(args: Array[String]) {
    val cronExpressions: List[String] = ... // cron expressions read from database

    startCamelService

    cronExpressions foreach { cronExpression =>
      val timerName: String = ... // app-specific timer name for cronExpression
      actorOf(new Scheduler(timerName, cronExpression)).start
    }
  }

  class Scheduler(timerName: String, cronExpression: String) extends Actor with Consumer {
    def endpointUri = "quartz://%s?cron=%s" format (timerName, cronExpression)

    protected def receive = {
      case msg => ... // react on timer event
    }
  }
}
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6758597

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档