stratos-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gayan Gunarathne <gay...@wso2.com>
Subject Re: Adding blocking queue to Stratos executor service
Date Fri, 21 Aug 2015 06:45:27 GMT
Yeah. Seems this happens when there are multiple application run at
once.Once the threads consumes executor service thread pool size, this
exception is thrown.

Now I have added the blocking queue to the executor service in the
tenant-isolation branch.

Thanks,
Gayan


On Fri, Aug 21, 2015 at 11:40 AM, Reka Thirunavukkarasu <reka@wso2.com>
wrote:

> Good to have this Gayan.! I too faced thread pool rejection while
> deploying multiple applications at once. Will use this impl to overcome
> that issue.
>
> Thanks,
> Reka
>
> On Fri, Aug 21, 2015 at 11:27 AM, Imesh Gunaratne <imesh@apache.org>
> wrote:
>
>> A good finding Gayan! Will this exception thrown to the execute() method
>> caller? If so we will need to use this.
>>
>> Thanks
>>
>> On Thu, Aug 20, 2015 at 9:48 PM, Gayan Gunarathne <gayang@wso2.com>
>> wrote:
>>
>>> Hi All,
>>>
>>> In our current code base , we are creating a execute service with fixed
>>> size.Even we have used the separate execute services for the each component
>>> , we can't guarantee the no of threads. That may leads to throw the
>>> "RejectedExecutionHandler" when no of threads exceeds the predefined
>>> executor service size.
>>>
>>> Shall we use the blocking queue as following to overcome this issue.
>>>
>>> final BlockingQueue<Runnable> queue =
>>>     new ArrayBlockingQueue<Runnable>(QUEUE_SIZE);ThreadPoolExecutor threadPool
= new ThreadPoolExecutor(NUM_THREADS, NUM_THREADS,
>>>        0L, TimeUnit.MILLISECONDS, queue);threadPool.setRejectedExecutionHandler(new
RejectedExecutionHandler() {
>>>    public void rejectedExecution(Runnable r, ThreadPoolExecutor executor) {
>>>           executor.getQueue().put(r);
>>>    }});
>>>
>>> By default the ThreadPoolExecutor will throw an exception when it size is filled.But
with this this we can block the job if the queue is full without throwing the exception. WDYT?
>>>
>>> Thanks,
>>> Gayan
>>>
>>>
>>>
>>> --
>>>
>>> Gayan Gunarathne
>>> Technical Lead, WSO2 Inc. (http://wso2.com)
>>> Committer & PMC Member, Apache Stratos
>>> email : gayang@wso2.com  | mobile : +94 775030545 <%2B94%20766819985>
>>>
>>>
>>>
>>
>>
>>
>> --
>> Imesh Gunaratne
>>
>> Senior Technical Lead, WSO2
>> Committer & PMC Member, Apache Stratos
>>
>
>
>
> --
> Reka Thirunavukkarasu
> Senior Software Engineer,
> WSO2, Inc.:http://wso2.com,
> Mobile: +94776442007
>
>
>


-- 

Gayan Gunarathne
Technical Lead, WSO2 Inc. (http://wso2.com)
Committer & PMC Member, Apache Stratos
email : gayang@wso2.com  | mobile : +94 775030545 <%2B94%20766819985>

Mime
View raw message