Synchronization between rules and timer handlers

  • How does MyController handle rules and timers?
    Do they execute operations from concurrent threads?
    Should we worry about synchronization when scripts read/write repository variables?

    Or all scripts are executed by a single thread and there are no concurrency issues?

  • @benya Rules and timers are running on different threads. When you fetch repository variable, it becomes your local reference, If you do change it will override existing value.

  • @jkandasa We need some mechanism to prevent race condition.

  • Is any <String, Object> map accessible to Groovy scripts?
    It would be possible to store there generic objects and use them for synchronization.

  • @benya Do you face any issue with out Synchronization?

  • @jkandasa said:

    @benya Do you face any issue with out Synchronization?

    I face potential issue in the following scenario:

    • multiple PIRs tigger rule that reads/writes global variable and disables/enables timer
    • timer reads global variable as well
    • timer has counter=1 and self-disables when triggered

    Therefore I need to synchronize access to the global variable and modifications of timer object.
    Otherwise global variable and timer could be left in an unexpected state.

Log in to reply

Suggested Topics