[ 
https://issues.apache.org/jira/browse/SLING-13044?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18050165#comment-18050165
 ] 

Joerg Hoh commented on SLING-13044:
-----------------------------------

One problem with the current implementation is the assumption, that reschules 
are rare. While the JobQueues operate with threadpools and therefor can be 
constrained in the number of jobs being executed concurrently, rescheduled jobs 
(at least for UNORDERED jobs) can operate at unlimited concurrency. 
To make that more reliable, the retries should also be fed back into the 
regular threadpools for execution.

> Job retries can create a large amount of Timers
> -----------------------------------------------
>
>                 Key: SLING-13044
>                 URL: https://issues.apache.org/jira/browse/SLING-13044
>             Project: Sling
>          Issue Type: Improvement
>          Components: Event
>    Affects Versions: Event Impl 4.4.0
>            Reporter: Joerg Hoh
>            Priority: Major
>
> When a job needs to be retried, a new Timer with a single TimerTask is 
> created. As each Timer creates a controlling thread, a large number of jobs 
> to be retried can lead to the creation of a large amount of threads. This 
> number is unlimited.
> To control the amount of threads created under such circumstances, a 
> ScheduledThreadPoolExecutor should be used, for which we can control the 
> number of threads. Each Job Queue should get its own dedicated instance of 
> such an executor.



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

Reply via email to