[ 
https://issues.apache.org/jira/browse/CAMEL-20684?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

James Netherton updated CAMEL-20684:
------------------------------------
    Description: 
Something I missed when upgrading SmallRye Fault Tolerance to 6.3.0 is that the 
use of ThreadTimer requires it to be a singleton. You can't create multiple 
instances with a custom executor on each init of FaultToleranceProcessor.

[https://github.com/smallrye/smallrye-fault-tolerance/blob/3d92e94269619115062a55f145b6b07eda18452f/implementation/core/src/main/java/io/smallrye/faulttolerance/core/timer/ThreadTimer.java#L67]

For Quarkus, there's already a singleton scoped CDI bean containing the 
ThreadTimer, so we could wire that into the Camel registry and look it up later.

Not sure how best to manage it for non-quarkus apps. You'd need to manage the 
lifecycle of the ThreadTimer & executor on Camel startup / shutdown.

  was:
Something I missed when upgrading SmallRye Fault Tolerance to 6.3.0 is that the 
use of ThreadTimer requires it to be a singleton. You can't create a multiple 
instances with a custom executor on each init of FaultToleranceProcessor.

[https://github.com/smallrye/smallrye-fault-tolerance/blob/3d92e94269619115062a55f145b6b07eda18452f/implementation/core/src/main/java/io/smallrye/faulttolerance/core/timer/ThreadTimer.java#L67]

For Quarkus, there's already a singleton scoped CDI bean containing the 
ThreadTimer, so we could wire that into the Camel registry and look it up later.

Not sure how best to manage it for non-quarkus apps. You'd need to manage the 
lifecycle of the ThreadTimer & executor on Camel startup / shutdown.


> camel-microprofile-fault-tolerance: ThreadTimer should be a singleton
> ---------------------------------------------------------------------
>
>                 Key: CAMEL-20684
>                 URL: https://issues.apache.org/jira/browse/CAMEL-20684
>             Project: Camel
>          Issue Type: Improvement
>          Components: camel-microprofile-fault-tolerance
>            Reporter: James Netherton
>            Priority: Minor
>             Fix For: 4.6.0
>
>
> Something I missed when upgrading SmallRye Fault Tolerance to 6.3.0 is that 
> the use of ThreadTimer requires it to be a singleton. You can't create 
> multiple instances with a custom executor on each init of 
> FaultToleranceProcessor.
> [https://github.com/smallrye/smallrye-fault-tolerance/blob/3d92e94269619115062a55f145b6b07eda18452f/implementation/core/src/main/java/io/smallrye/faulttolerance/core/timer/ThreadTimer.java#L67]
> For Quarkus, there's already a singleton scoped CDI bean containing the 
> ThreadTimer, so we could wire that into the Camel registry and look it up 
> later.
> Not sure how best to manage it for non-quarkus apps. You'd need to manage the 
> lifecycle of the ThreadTimer & executor on Camel startup / shutdown.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to