Determined by these ifs:
./daemon/executor.clj-            (if (and (.isEmpty overflow-buffer)
./daemon/executor.clj-                     (or (not max-spout-pending)
./daemon/executor.clj-                         (< (.size pending) 
max-spout-pending)))
./daemon/executor.clj-              (if active?
./daemon/executor.clj-                (do
./daemon/executor.clj-                  (when-not @last-active
./daemon/executor.clj-                    (reset! last-active true)
./daemon/executor.clj-                    (log-message "Activating spout " 
component-id ":" (keys task-datas))
./daemon/executor.clj-                    (fast-list-iter [^ISpout spout 
spouts] (.activate spout)))
./daemon/executor.clj-
./daemon/executor.clj:                  (fast-list-iter [^ISpout spout spouts] 
(.nextTuple spout)))

On 2014年3月6日, at 下午9:06, Tian Guo <[email protected]> wrote:

> But what factors determine when the nextTuple() should be invoked?
> 
> Thx!
> 
> 
> 2014-03-06 13:36 GMT+01:00 James Xu <[email protected]>:
> The caking of previous tuple has nothing to do with the invocation of 
> nextTuple().
> 
> On 2014年3月6日, at 下午8:19, Tian Guo <[email protected]> wrote:
> 
>> 
>> Thanks for your advice!
>> 
>> But my double still remains. Is the nextTuple method called only when the 
>> previous tuples are acked in the ack method? Anyone knows the internal 
>> strategy?
>> 
>> Thx!
>> 
>> Best,
>> 
>> 2014-03-06 8:14 GMT+01:00 James Xu <[email protected]>:
>> use Tick Tuple.
>> 
>> On 2014年3月6日, at 上午4:28, Tian Guo <[email protected]> wrote:
>> 
>>> I am developing some data analysis algorithms on top of Storm and have some 
>>> questions about the internal design of Storm. 
>>> 
>>> I want to simulate a sensor data yielding and processing in Storm, and 
>>> therefore I use Spout to push sensor data into the succeeding bolts at a 
>>> constant time interval via setting a sleep method in nextTuple method of 
>>> Spout. But from the experiment results, it appeared that spout didn't push 
>>> data at the specified rate. In the experiment, there was no bottleneck bolt 
>>> in the system. 
>>> 
>>> Therefore, my doubt is if the nextTuple method is called only when the 
>>> previous tuples are fully processed and acked in the ack method? 
>>> 
>>> If this is true, does it means that I cannot set a fixed time interval to 
>>> emit data?
>>> 
>>> Thx a lot!
>> 
>> 
> 
> 

Reply via email to