Beispiel #1
0
        private void Blocked()
        {
            Receive <DoSomeWork>(m => { Stash.Stash(); log.Info($"Blocked Stashing WorkId {m.WorkID} at {DateTime.Now.ToLongTimeString()}"); });
            Receive <DoCurrentWork>(m =>
            {
                DoSomeWork work = m.Work;
                DoTheWork(work);
                log.Info($"WorkerActor finished processing DoSomeWork {work.WorkID} at {DateTime.Now.ToLongTimeString()}");
                Become(Ready);//unblock and process first stashed request
                Stash.Unstash();
            });


            log.Info($"Blocked returning at {DateTime.Now.ToLongTimeString()}");
            return;
        }
Beispiel #2
0
 private void DoTheWork(DoSomeWork m)
 {
     log.Info($"DoTheWork WorkId {m.WorkID}");
     System.Threading.Thread.Sleep(2500); //simulate i/o latency
 }