Example #1
0
        public override Task Tell(byte[] bytes, IActorOwnMessage <string> data, MessageInfo msg)
        {
            switch (data)
            {
            case AmountTransferEvent value: return(AmountAddEventHandler(value));

            default: return(Task.CompletedTask);
            }
        }
Example #2
0
 /// <summary>
 /// 发送无状态更改的消息到消息队列
 /// </summary>
 /// <param name="msg"></param>
 /// <returns></returns>
 public async Task Publish(IActorOwnMessage <K> msg)
 {
     msg.StateId = this.GrainId;
     using (var ms = new PooledMemoryStream())
     {
         Serializer.Serialize(ms, msg);
         await MQService.Publish(msg, ms.ToArray(), GrainId.ToString());
     }
 }
Example #3
0
 public override Task Tell(byte[] bytes, IActorOwnMessage <K> data, TMessageWrapper msg)
 {
     if (data is IEventBase <K> evt)
     {
         return(Task.WhenAll(SendToAsyncGrain(bytes, evt), LocalProcess(bytes, data, msg)));
     }
     else
     {
         return(LocalProcess(bytes, data, msg));
     }
 }
Example #4
0
        public override Task Tell(byte[] bytes, IActorOwnMessage <string> data, MessageInfo msg)
        {
            var replicatedRef = HandlerStart.Client.GetGrain <IAccountRep>(data.StateId);
            var task          = replicatedRef.Tell(bytes);

            switch (data)
            {
            case AmountTransferEvent value: return(Task.WhenAll(task, AmountAddEventHandler(value)));

            default: return(task);
            }
        }
Example #5
0
 public abstract Task Tell(byte[] dataBytes, IActorOwnMessage <K> data, TMessageWrapper msg);
Example #6
0
 public override Task Tell(byte[] bytes, IActorOwnMessage <string> data, MessageInfo msg)
 {
     return(clientFactory.GetClient().GetGrain <IAccountDb>(data.StateId).Tell(bytes));
 }
Example #7
0
        public override Task Tell(byte[] dataBytes, IActorOwnMessage <string> data, MessageInfo msg)
        {
            var grain = HandlerStart.Client.GetGrain <IAccountToRead>(data.StateId);

            return(grain.Tell(dataBytes));
        }
Example #8
0
 public virtual Task LocalProcess(byte[] dataBytes, IActorOwnMessage <K> data, TMessageWrapper msg) => Task.CompletedTask;