You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@groovy.apache.org by Schalk Cronjé <ys...@gmail.com> on 2015/09/02 16:25:39 UTC

GPars Kanbanflow question

THe essence of my question is: "How do I know that there is no more work 
left within a KanbanFlow?"

In practice what is happening is that I have something like:

   { (1) DataFlowQueue from which producer reads } | { some processing 
in consumer node (2), sends final data to an Actor instance (3) }

I can determine when there will be no more data to be placed into the 
DataFlowQueue (1).
I can also determine when the Actor has finished all the work it 
received (3).

However I have no idea how to determine whether there in work-in-process 
in (2). This means that I can prematurely call stop() on my KanbanLink 
instance and lose data.


-- 
Schalk W. Cronjé
Twitter / Ello / Toeter : @ysb33r


Re: GPars Kanbanflow question

Posted by Schalk Cronjé <ys...@gmail.com>.
That's an idea to try. Thanks.

On 03/09/2015 00:45, Bob Brown wrote:
> Can you send an “I have finished processing” message from 1? 2 will see this after everything else, can pass it on to 3 and then stop…
>
> 2 and 3 become soemthing like:
>
> class Stop {}
>
>
> intermediaries << Actors.messageHandler {
>    when { Stop msg -> stop() }
>    when { msg -> reply msg }
> }
>
>
> I put this together here:
>
> http://wordpress.transentia.com.au/wordpress/2010/03/05/playing-with-gpars/
>
> HTH
>
> BOB
>
>
>
>
> On 3/09/2015 12:25 am, "Schalk Cronjé" <ys...@gmail.com> wrote:
>
>> THe essence of my question is: "How do I know that there is no more work
>> left within a KanbanFlow?"
>>
>> In practice what is happening is that I have something like:
>>
>>    { (1) DataFlowQueue from which producer reads } | { some processing
>> in consumer node (2), sends final data to an Actor instance (3) }
>>
>> I can determine when there will be no more data to be placed into the
>> DataFlowQueue (1).
>> I can also determine when the Actor has finished all the work it
>> received (3).
>>
>> However I have no idea how to determine whether there in work-in-process
>> in (2). This means that I can prematurely call stop() on my KanbanLink
>> instance and lose data.
>>
>>
>> -- 
>> Schalk W. Cronjé
>> Twitter / Ello / Toeter : @ysb33r
>>


-- 
Schalk W. Cronjé
Twitter / Ello / Toeter : @ysb33r


Re: GPars Kanbanflow question

Posted by Bob Brown <bo...@transentia.com.au>.
Can you send an “I have finished processing” message from 1? 2 will see this after everything else, can pass it on to 3 and then stop…

2 and 3 become soemthing like:

class Stop {}


intermediaries << Actors.messageHandler {
  when { Stop msg -> stop() }
  when { msg -> reply msg }
}


I put this together here:

http://wordpress.transentia.com.au/wordpress/2010/03/05/playing-with-gpars/

HTH

BOB




On 3/09/2015 12:25 am, "Schalk Cronjé" <ys...@gmail.com> wrote:

>
>THe essence of my question is: "How do I know that there is no more work 
>left within a KanbanFlow?"
>
>In practice what is happening is that I have something like:
>
>   { (1) DataFlowQueue from which producer reads } | { some processing 
>in consumer node (2), sends final data to an Actor instance (3) }
>
>I can determine when there will be no more data to be placed into the 
>DataFlowQueue (1).
>I can also determine when the Actor has finished all the work it 
>received (3).
>
>However I have no idea how to determine whether there in work-in-process 
>in (2). This means that I can prematurely call stop() on my KanbanLink 
>instance and lose data.
>
>
>-- 
>Schalk W. Cronjé
>Twitter / Ello / Toeter : @ysb33r
>