Apama Application route event as a priority

79 views Asked by At

I am writing an Application that can receive 2 types of event coming into the system from separate sources. I want to have a Context to handle each of them. See the code below :

event MyEvent1{
  //stuff for context1
}

event MyEvent2{
  //stuff for context2
}

event Cascade{
  //PRIORITY stuff for context1 & 2
}

monitor Application{

  context parallel1 := context("E1processor");
  context parallel2 := context("E2processor");

  action onload{

    spawn handleE1() to parallel1; 
    spawn handleE2() to parallel2; 

    on all MyEvent1() as e {
      send e to parallel1;
    }

    on all MyEvent2() as e {
      send e to parallel2;
    }

  }//onload

  action handleE1( ){
      on all MyEvent1() as e1 {
        //do work, create and route CASCADE event
        route Cascade();
        //I want to do this!
        route Cascade() to parallel2; // < ----- ERROR
    }  

    on all Cascade(){
      //URGENT stuff
    }  

  }

  action handleE2(){
    on all MyEvent2() as e1 {
    }  

    on all Cascade(){
      //URGENT stuff
    }  
  }

}//Application

My problem lies with the fact that I want to have the Cascade() event pushed to the front of the processing queue because it is a priority. But when I try to do the following:

//do work, create and route CASCADE event
route Cascade(); //<--- Works
//I want to do this!
route Cascade() to parallel2; // < ----- ERROR

It gives me an error - how can I route the event as a priority from one context to the other?

1

There are 1 answers

0
Madden On BEST ANSWER

Unfortunately there's no way to priority send to another context. The answer might be more architectural in nature - can the Cascade handling simply be done in the main context for example?