public async Task <bool> PublishAsync <TEntity>(IServiceProvider serviceProvider, IEnumerable <IEntity> entities, PersistentOperator operType, PersistentEventType eventType) { if (!entities.Any()) { return(true); } var _event = new EntitiesArgs(entities, operType, eventType); var subject = new PersistentSubject(typeof(TEntity), eventType, _event); await subMgr.PublishAsync(subject); await AcceptForServiceProviderAsync(serviceProvider, subject); return(!_event.Cancel); }
/// <summary> /// 发送消息。 /// </summary> /// <param name="method"></param> /// <param name="arguments"></param> /// <returns></returns> public override async Task SendAsync(string method, params object[] arguments) { //使用消息队列将消息发指定的服务器,即aliveKey对应的服务器 var msg = new DistributedInvokeMessage { AliveKey = _aliveKey, Connections = _connections, Message = new InvokeMessage(method, 0, arguments) }; await _subscribeMgr.PublishAsync(_aliveKey, msg); }
public async Task WriteAsync(IDbCommand command, TimeSpan period, CancellationToken cancellationToken = default) { await subMgr.PublishAsync(new CommandLogSubject { Level = 0, CommandText = command.Output(), Period = period.TotalMilliseconds }); }