re: "The mechanism is a bit tricky", thanks goodness it isn't just me ;)

Say I have a *JobSupervisorActor* that really manages work.  He might get a 
message *StartJob(job)* for example.  Handling might look like:
1. Save the job in the db
2. When job is saved successfully, spawn a *JobActor* child to start 
processing it

The *JobActor* might do this:
1. preStart, load the job (and its sub-tasks) from db
2. For each task, start processing it
3. When a task completes, then save the state of the job in the database
4. When all tasks complete, then save the state of the job to mark it as 
done
5. Kill ourself

What we are discussing is, what happens if the *JobActor* cannot save its 
state?

If the *JobActor* throws an exception, he will be *re-started* by the 
*JobSupervisor* (his parent).

We really want the *JobActor* to *continue* from the last known state of 
the job.

You've been great, this is a very helpful dialog, also good for this user 
group in case someone else has the same conundrum in the future :)

On Friday, February 5, 2016 at 11:18:50 AM UTC-5, Guido Medina wrote:
>
> The mechanism is a bit tricky. the trick is to use preStart() to do that 
> Job unit of work and the 1st message to process sub-task explained in 
> details:
>
>    - Supervisor loads Job A which has a definition like how many times 
>    should retry, how long to backoff, etc.
>    - Supervisor spawn actor A, if preStart has something to do it does it 
>    and then message itself with StartSubTasks.
>    - Actor A receives StartSubTasks messages, creates a counter = size of 
>    subtasks:
>    - For each sub-task spawn actor, when actor finishes sends message to 
>    parent saying done and decrement counter, when counter is zero poisonpill 
>    self.
>
> What I haven't figured out is how to write state of subtask and failure 
> for that for that pattern is a start, btw you don't need to stash, use 
> preStart for task and onReceive for sub-tasks.
>

-- 
>>>>>>>>>>      Read the docs: http://akka.io/docs/
>>>>>>>>>>      Check the FAQ: 
>>>>>>>>>> http://doc.akka.io/docs/akka/current/additional/faq.html
>>>>>>>>>>      Search the archives: https://groups.google.com/group/akka-user
--- 
You received this message because you are subscribed to the Google Groups "Akka 
User List" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.

Reply via email to