2011-07-20 13 views
7

मेरे पास क्वार्ट्ज क्रोनट्रिगर्स का डीबी है। मैं इस पूरे सिस्टम को एक अक्का आधारित बैकएंड में बंद करना चाहता हूं, मैं वर्तमान में आर्किटेक्टिंग कर रहा हूं। मैं इस तरीके के बारे में सोच रहा था और सोच रहा था।अक्का अभिनेताओं में क्वार्ट्ज क्रोनट्रिगर्स का उपयोग कर ऊंट का उपयोग या नहीं?

उदाहरण के लिए, कस्टमरआउट बिल्डर्स और अन्य समान सामान। मैंने जियोवानी द्वारा उत्कृष्ट क्वार्ट्ज-कैमल-अक्का एकीकरण उदाहरण की कोशिश की और इसके साथ काफी प्रभावित हुआ। अब, मेरे सिस्टम में अलग-अलग और उपयोगकर्ता निर्मित क्रॉन एक्सप्रेशन के साथ मेरे सिस्टम में एकाधिक क्रॉन ट्रिगर्स हैं।

मैं ऐसे उपयोगकर्ता निर्भर एंडपॉइंट यूरी के साथ ऊंट उपभोक्ता अभिनेताओं की प्रणाली कैसे प्रोग्राम कर सकता हूं? कई विकल्पों के बारे में सोच रहा था लेकिन अभी तक कुछ भी पता नहीं लगा सका।

कृपया इस प्रयास में मेरी सहायता करें। मैं क्वार्ट्ज और ऊंट से परे अन्य विचारों के लिए भी खुला हूं। मैं अक्का आधारित बैकएंड मंच से चिपकना चाहता हूं। मेरे सिस्टम में उपयोगकर्ता परिभाषित नौकरियां होती हैं जो उपयोगकर्ता परिभाषित क्रॉन बनाने योग्य समय पर आग लगती हैं।

उत्तर

9

क्रॉन एक्सप्रेशन (जैसे डेटाबेस से पढ़ें) की सूची से शुरू करके आप सूची में फिर से शुरू कर सकते हैं और प्रत्येक तत्व के लिए क्वार्ट्ज उपभोक्ता अभिनेता शुरू कर सकते हैं। यहां एक उदाहरण दिया गया है:

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 
    } 
    } 
} 
+1

अद्भुत। धन्यवाद मार्टिन। यह कोशिश करेंगे। –

+0

मैं वास्तव में कुछ इसी तरह के बारे में सोच रहा था ... लेकिन यह करने के तरीकों के बारे में निश्चित नहीं था। आपका कोड इसे और अधिक स्पष्ट और आसान बनाता है। –

संबंधित मुद्दे