Ejemplo n.º 1
0
 private static void HandleStartEntity <TShard>(this TShard shard, ShardRegion.StartEntity start) where TShard : IShard
 {
     shard.Log.Debug("Got a request from [{0}] to start entity [{1}] in shard [{2}]", shard.Sender, start.EntityId, shard.ShardId);
     if (shard.PassivateIdleTask != null)
     {
         shard.LastMessageTimestamp = shard.LastMessageTimestamp.SetItem(start.EntityId, DateTime.Now.Ticks);
     }
     shard.GetEntity(start.EntityId);
     shard.Context.Sender.Tell(new ShardRegion.StartEntityAck(start.EntityId, shard.ShardId));
 }
Ejemplo n.º 2
0
        private static void HandleStartEntity <TShard>(this TShard shard, ShardRegion.StartEntity start) where TShard : IShard
        {
            var requester = shard.Sender;

            shard.Log.Debug("Got a request from [{0}] to start entity [{1}] in shard [{2}]", requester, start.EntityId, shard.ShardId);
            shard.TouchLastMessageTimestamp(start.EntityId);

            if (shard.State.Entries.Contains(start.EntityId))
            {
                shard.GetOrCreateEntity(start.EntityId);
                requester.Tell(new ShardRegion.StartEntityAck(start.EntityId, shard.ShardId));
            }
            else
            {
                shard.ProcessChange(new Shard.EntityStarted(start.EntityId), e =>
                {
                    shard.GetOrCreateEntity(start.EntityId);
                    shard.SendMessageBuffer(e);
                    requester.Tell(new ShardRegion.StartEntityAck(start.EntityId, shard.ShardId));
                });
            };
        }
Ejemplo n.º 3
0
 private void HandleStartEntity(ShardRegion.StartEntity start)
 {
     Log.Debug("Got a request from [{0}] to start entity [{1}] in shard [{2}]", _context.Sender, start.EntityId, ShardId);
     GetEntity(start.EntityId);
     _context.Sender.Tell(new ShardRegion.StartEntityAck(start.EntityId, ShardId));
 }
Ejemplo n.º 4
0
 private static void HandleStartEntity <TShard>(this TShard shard, ShardRegion.StartEntity start) where TShard : IShard
 {
     shard.Log.Debug("Got a request from [{0}] to start entity [{1}] in shard [{2}]", shard.Sender, start.EntityId, shard.ShardId);
     shard.GetEntity(start.EntityId);
     shard.Context.Sender.Tell(new ShardRegion.StartEntityAck(start.EntityId, shard.ShardId));
 }