camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Claus Ibsen <claus.ib...@gmail.com>
Subject Re: ScheduledPollConsumer - poll() behavior?
Date Sun, 21 Mar 2010 07:45:33 GMT
On Sat, Mar 20, 2010 at 8:43 PM, tide08 <sachin2_2k@yahoo.com> wrote:
>
> So, would it make sense that in my customConsumer that extends
> ScheduledPollConsumer, I override doStart() to schedule more tasks? Is this
> thread-safe to do?
>

You can do that.
Also nothing is thread safe out of the box, its something that YOU
have to ensure.
And it depends what the scheduled task is doing etc.


>    @Override
>    protected void doStart() throws Exception {
>
>        if (log.isDebugEnabled()) {
>            log.debug("Starting consumer: " + this);
>        }
>
>        ServiceHelper.startServices(getProcessor());
>
>        for(int i=0; i < threadPoolSize; i++){
>            if (isUseFixedDelay()) {
>                executorService.scheduleWithFixedDelay(this,
> getInitialDelay(), getDelay(), getTimeUnit());
>            } else {
>                executorService.scheduleAtFixedRate(this, getInitialDelay(),
> getDelay(), getTimeUnit());
>            }
>        }
>    }
>
>
>
>
> Claus Ibsen-2 wrote:
>>
>> On Fri, Mar 19, 2010 at 2:49 AM, tide08 <sachin2_2k@yahoo.com> wrote:
>>>
>>> Sorry, I am much confused at this point :(
>>>
>>> In regards to ScheduledPollConsumer,  is poll() method invoked by
>>> concurrent
>>> consumers? or is it just one consumer? I just see one thread invoking
>>> poll(), what is threadpool for than?
>>>
>>
>> Yes 1 thread. The thread pool can schedule as its a
>> ScheduledExecutorService.
>>
>>
>>> Thanks!
>>>
>>>
>>>
>>> tide08 wrote:
>>>>
>>>> Hi,
>>>>
>>>> I am writing custom component and I need a polling consumer but I am not
>>>> sure, if the approach I am taking is correct. I need create
>>>> scheduledPollingConsumer which polls external system to receive
>>>> messages.
>>>>
>>>> Looking at other components SchedulePollingConsumers implement poll()
>>>> method which works with "known" number of messages i.e. Mail, File -
>>>> each
>>>> know what number of messages to work with inside of poll()
>>>>
>>>> //mail
>>>> int count = folder.getMessageCount();
>>>>
>>>> But in my scenario, there is no way to know it until you receive "null"
>>>> message from external system. So as I understand in my scenario, if
>>>> there
>>>> are tonnes of messages, this consumer will keep running indefinitely.
>>>> How
>>>> would this affect threadpool?
>>>>
>>>> How are ScheduledPollingConsumer supposed to behave? Consume as much in
>>>> polling interval? or consume restrictively so that the scheduled run
>>>> ends
>>>> before the next schedule?
>>>>
>>>> Please advice. Thanks!
>>>>
>>>>
>>>>
>>>
>>> --
>>> View this message in context:
>>> http://old.nabble.com/ScheduledPollConsumer---poll%28%29-behavior--tp27942516p27950874.html
>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>
>>>
>>
>>
>>
>> --
>> Claus Ibsen
>> Apache Camel Committer
>>
>> Author of Camel in Action: http://www.manning.com/ibsen/
>> Open Source Integration: http://fusesource.com
>> Blog: http://davsclaus.blogspot.com/
>> Twitter: http://twitter.com/davsclaus
>>
>>
>
> --
> View this message in context: http://old.nabble.com/ScheduledPollConsumer---poll%28%29-behavior--tp27942516p27968018.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
>
>



-- 
Claus Ibsen
Apache Camel Committer

Author of Camel in Action: http://www.manning.com/ibsen/
Open Source Integration: http://fusesource.com
Blog: http://davsclaus.blogspot.com/
Twitter: http://twitter.com/davsclaus

Mime
View raw message