Esempio n. 1
0
        private void Start()
        {
            _publishing = true;

            while (_publishing)
            {
                try
                {
                    foreach (var message in _messages.GetConsumingEnumerable(_cancellationTokenSource.Token))
                    {
                        if (_seenMessages.Contains(message.MessageId))
                        {
                            return;
                        }

                        _messageSender.Send(message);
                        _seenMessages.Add(message.MessageId);
                    }
                }
                catch (OperationCanceledException exception)
                {
                    //blocking cancelled..
                }
            }
        }
Esempio n. 2
0
        public async Task <IActionResult> GetUsers()
        {
            var users = await _repo.GetUsers();

            _sender.Send("UsersRetrieved");
            return(Ok(users));
        }
Esempio n. 3
0
        public void Delete(ConnectionId connectionId, ObjectId objectId)
        {
            var deleteObjectMsg = _deleteMessages.Create();

            deleteObjectMsg.Content.ObjectId = objectId;
            _messageSender.Send(connectionId, deleteObjectMsg);
        }
Esempio n. 4
0
        void Update()
        {
            if (!_client.Connected)
            {
                return;
            }

            while (_client.GetNextMessage(out var msg))
            {
                switch (msg.eventType)
                {
                case EventType.Connected:
                    Sender.Send(new ConnectedServerMessage());
                    break;

                case EventType.Data:
                    ParseMessage(msg.data);
                    break;

                case EventType.Disconnected:
                    Sender.Send(new DisconnectServerMessage());
                    break;
                }
            }
        }
        public IActionResult SendTestMessage()
        {
            try
            {
                var msg = new BusinessMessage()
                {
                    Content       = "some Content",
                    CorrelationId = Guid.Parse(Constants.HelloWorldMessage)
                };

                _logger.LogInformation($"SendTestMessage: created message {msg.CorrelationId}");

                var id = _countersService.CreateRequest(new CountRequest()
                {
                    Content = msg.Content, CorrelationId = msg.CorrelationId
                });

                _logger.LogInformation($"SendTestMessage: stored in db {id}");

                _messageSender.Send(msg);

                _logger.LogInformation($"SendTestMessage: sent {id}");

                return(Content(msg.CorrelationId.ToString()));
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.Message);
                return(StatusCode(500, ex.Message));
            }
        }
Esempio n. 6
0
    private async Task RegisterUser()
    {
        using var activity = _activitySource.StartActivity($"{nameof(RegisterUser)}");
        {
            var parameters = new RegisterUserCommandParameters("Bilbo", "Baggins");
            var command    = new CqrsCommand <RegisterUserCommandParameters>(parameters, SequentialGuid.NewGuid().ToString());

            await _messageSender.Send(command);
        }
    }
        private void ReplicateSelfPlatform()
        {
            var world = new ReplicatePartnetPlatformMessage
            {
                PartnerPosition = Player.transform.localPosition.x,
                PartnerVelocity = Player.GetComponent <Rigidbody2D>().velocity.x
            };

            Sender.Send(world);
        }
    public void SendCommand()
    {
        for (var i = 0; i < 5000; i++)
        {
            var parameters = new MessageParameters("CqrsCommand");
            var command    = new SendCqrsCommand(parameters, Guid.NewGuid().ToString());

            _messageSender.Send(command);
        }
    }
Esempio n. 9
0
 private void OnCollisionEnter2D(Collision2D col)
 {
     if (col.gameObject.CompareTag(TopBorderTag))
     {
         Bus.Send(new CollideTopBorderMessage());
     }
     else if (col.gameObject.CompareTag(BottomBorderTag))
     {
         Bus.Send(new CollideBottomBorderMessage());
     }
 }
 public AlphaResponse PreIntercept(string parentTxId, string compensationMethod, int timeout, string retriesMethod, int retries,
                                   params object[] message)
 {
     try
     {
         return(_sender.Send(new SagaStartedEvent(_omegaContext.GetGlobalTxId(), _omegaContext.GetLocalTxId(), timeout)));
     }
     catch (OmegaException ex)
     {
         throw new TransactionException(ex.Message, ex);
     }
 }
        private void SendMessage(Student student)
        {
            if (student.AverageMark < 4)
            {
                _smsMessageSender.Send(student, _logger);
            }

            if (student.MissedLectures > 3)
            {
                _emailMessageSender.Send(student, _logger);
                _emailMessageSender.Send(student, _logger);
            }
        }
        public void Send(IMessageSender sender)
        {
            this.Log().Info("开始计算个股形态");

            DateTime StartDate0 = stockService.GetLatestDate(ObjectType.Stock, "0601988");
            DateTime StartDate1 = stockService.GetLatestDate(ObjectType.Stock, "0601318");

            var StartDate = StartDate0.CompareTo(StartDate1) >= 0 ? StartDate0 : StartDate1;

            IList <stockcategory> cateList = cateService.FindAll();

            TechCycle[] cycleList = new TechCycle[] { TechCycle.day, TechCycle.week, TechCycle.month };
            var         log       = this.Log();

            foreach (var category in cateList)
            {
                if (StartDate.ToString("yyyyMMdd") == DateTime.Now.ToString("yyyyMMdd"))
                {
                    log.Info(string.Format("导入今天日线数据,分类:{1}:从日期{0}", StartDate.ToString("yyyy-MM-dd"), category.name));

                    var task1 = new PriceUpdate
                    {
                        StartDate = StartDate,
                        CateCode  = category.code
                    };
                    sender.Send(JsonConvert.SerializeObject(task1));
                    //ImportTodayPrice(stockList);
                }
                else
                {
                    IList <data.stock> stockList = stockService.GetStockByCategory(category.code);

                    foreach (var stock in stockList)
                    {
                        var task1 = new PriceUpdate
                        {
                            StartDate = StartDate,
                            StockCode = stock.code
                        };
                        sender.Send(JsonConvert.SerializeObject(task1));
                        //log.Info(string.Format("导入日线开始,股票:{1}:从日期{0}", StartDate.ToString("yyyy-MM-dd"), stock.name));
                        //ImportDay(stock, StartDate);
                        //log.Info(string.Format("导入周线开始,股票:{1}:从日期{0}", StartDate.ToString("yyyy-MM-dd"), stock.name));
                        //ImportWeek(stock, StartDate);
                        //log.Info(string.Format("导入月线开始,股票:{1}:从日期{0}", StartDate.ToString("yyyy-MM-dd"), stock.name));
                        //ImportMonth(stock, StartDate);
                        //log.Info(string.Format("导入结束,股票:{1}:从日期{0}", StartDate.ToString("yyyy-MM-dd"), stock.name));
                    }
                }
            }
        }
Esempio n. 13
0
        public void PurgeTimeouts()
        {
            lock (LockObject)
            {
                var array = new ReplyWait[_internal.Count];
                _internal.Values.CopyTo(array, 0);
                foreach (var replyWait in array)
                {
                    if (!replyWait.IsTimeout)
                    {
                        continue;
                    }

                    if (replyWait.Attempts++ >= 3)
                    {
                        _internal.Remove(replyWait.CorrelationId);
                    }
                    else
                    {
                        replyWait.Sent = DateTimeProvider.UtcNow;
                        _messageSender.Send(replyWait.Package.EndPoint, replyWait.Package.Data);
                    }
                }
            }
        }
Esempio n. 14
0
        public int Run()
        {
            var dateTime = DateTimeOffset.Now.AddMinutes(-1);

            var messages = _repository.GetAll()
                           .Where(x => x.SentDateTime == null && x.RetriedCount < 3)
                           .Where(x => (x.RetriedCount == 0 && x.CreatedDateTime < dateTime) || (x.RetriedCount != 0 && x.UpdatedDateTime < dateTime))
                           .ToList();

            if (messages.Any())
            {
                foreach (var sms in messages)
                {
                    _smsMessageCreatedEventSender.Send(new SmsMessageCreatedEvent {
                        Id = sms.Id
                    });

                    sms.RetriedCount++;

                    _repository.AddOrUpdate(sms);
                    _repository.UnitOfWork.SaveChanges();
                }
            }
            else
            {
                _logger.LogInformation("No SMS to resend.");
            }

            return(messages.Count);
        }
Esempio n. 15
0
 public async Task <T> Send <T>(object message)
 {
     try
     {
         _logger.LogDebug("准备发送消息");
         var microMessage = new MicroMessage(message);
         var callback     = RegistCallbackAsync <T>(microMessage.Id);
         try
         {
             _logger.LogDebug($"{_sender.GetType()}:send :{JsonConvert.SerializeObject(microMessage)}");
             //发送
             await _sender.Send(microMessage);
         }
         catch (Exception exception)
         {
             _logger.LogError(exception, "与服务端通讯时发生了异常");
             throw new SpearException("与服务端通讯时发生了异常");
         }
         _logger.LogDebug("消息发送成功");
         return(await callback);
     }
     catch (Exception ex)
     {
         _logger.LogError(ex, "消息发送失败。");
         throw new SpearException("消息发送失败");
     }
 }
        public void Handle(EntityCreatedEvent <FileEntry> domainEvent)
        {
            using (var scope = _serviceProvider.CreateScope())
            {
                var auditSerivce = scope.ServiceProvider.GetService <IAuditLogService>();
                var currentUser  = scope.ServiceProvider.GetService <ICurrentUser>();

                auditSerivce.AddOrUpdate(new AuditLogEntryDTO
                {
                    UserId          = currentUser.IsAuthenticated ? currentUser.UserId : Guid.Empty,
                    CreatedDateTime = domainEvent.EventDateTime,
                    Action          = "CREATED_FILEENTRY",
                    ObjectId        = domainEvent.Entity.Id.ToString(),
                    Log             = domainEvent.Entity.AsJsonString(),
                });

                IMessageSender <FileUploadedEvent> fileUploadedEventSender = scope.ServiceProvider.GetService <IMessageSender <FileUploadedEvent> >();

                // Forward to external systems
                fileUploadedEventSender.Send(new FileUploadedEvent
                {
                    FileEntry = domainEvent.Entity,
                });
            }
        }
        public async Task <IActionResult> StartProcessing([FromBody] int userId)
        {
            var user = await _userService.GetAsync(userId);

            var startProcessingCommand = new StartProcessingEvent
            {
                UserIdentifier = new YandexDiskUserIdentifier {
                    UserId = user.Id
                },
                Token = user.YandexDiskAccessToken
            };

            _messageSender.Send(startProcessingCommand);

            return(Ok());
        }
Esempio n. 18
0
        public void Send(IMessageSender sender)
        {
            this.Log().Info("清空数据");
            ClearRecormend();

            var groups = new string[] { "tencent", "market" };

            foreach (var group in groups)
            {
                this.Log().Info("推荐" + group + "股票");

                IList <data.stockcategory>   cateList  = cateService.GetCategoryList(group);
                IList <data.indexdefinition> indexList = indexService.FindAll().Where(p => p.state == 1).ToList();
                foreach (var cate in cateList)
                {
                    foreach (var index in indexList)
                    {
                        RecoCateStock msg = new RecoCateStock
                        {
                            CateCode  = cate.code,
                            CateName  = cate.name,
                            IndexCode = index.code,
                            IndexName = index.name
                        };
                        sender.Send(JsonConvert.SerializeObject(msg));
                    }
                }
            }
        }
Esempio n. 19
0
        public bool Stop()
        {
            bool             bRetorno   = true;
            IObjectContainer Contenedor = null;

            try
            {
                Contenedor = Db4oFactory.OpenClient(MiCliente.Server, Convert.ToInt32(MiCliente.Port), MiCliente.User, MiCliente.Password);
                if (Contenedor != null)
                {
                    IMessageSender messageSender = Contenedor.Ext().Configure().ClientServer()
                                                   .GetMessageSender();
                    //envio el mensaje
                    messageSender.Send(new StopServer(""));
                    Thread.Sleep(1000);//espero a que llegue el pinci mensaje
                    //cierro el contenedor
                    if (Contenedor != null)
                    {
                        Contenedor.Close();
                    }
                    Contenedor.Dispose();
                }
            }
            catch (System.Net.Sockets.SocketException)
            {                    //No se conecto, ta cerrado
                bRetorno = true; //nomas por poner codigo
            }
            catch (Exception)
            {
                bRetorno = false;//No se pudo detener
                //Console.WriteLine(e.ToString());
            }
            return(bRetorno);
        }
Esempio n. 20
0
        /// <summary>
        /// stops a db4o Server started with StartServer.
        /// </summary>
        /// <exception cref="Exception" />
        public static void Main(string[] args)
        {
            IObjectContainer IObjectContainer = null;

            try
            {
                // connect to the server
                IObjectContainer = Db4oClientServer.OpenClient(Db4oClientServer.NewClientConfiguration(),
                                                               HOST, PORT, USER, PASS);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
            }

            if (IObjectContainer != null)
            {
                // get the messageSender for the IObjectContainer
                IMessageSender messageSender = IObjectContainer.Ext()
                                               .Configure().ClientServer().GetMessageSender();

                // send an instance of a StopServer object
                messageSender.Send(new StopServer());

                // close the IObjectContainer
                IObjectContainer.Close();
            }
        }
Esempio n. 21
0
 public static void Send <TMessage>(this IMessageSender <TMessage> sender, string ipAddress, int port, byte[] data, Action <Exception?>?callback)
     where TMessage : IMessage <IPEndPoint, ArraySegment <byte> >, new()
 {
     Ensure.ArgumentNotNull(ipAddress, "ipAddress");
     Ensure.ArgumentNotNull(data, "data");
     sender.Send(IPAddress.Parse(ipAddress), port, data, 0, data.Length, callback);
 }
Esempio n. 22
0
 public void Handle(EntityCreatedEvent <SmsMessage> domainEvent)
 {
     // Handle the event here and we can also forward to external systems
     _smsMessageCreatedEventSender.Send(new SmsMessageCreatedEvent {
         Id = domainEvent.Entity.Id
     });
 }
Esempio n. 23
0
        public int ResendEmailMessages()
        {
            var dateTime = _dateTimeProvider.OffsetNow.AddMinutes(-1);

            var messages = _repository.GetAll()
                           .Where(x => x.SentDateTime == null && x.RetriedCount < 3)
                           .Where(x => (x.RetriedCount == 0 && x.CreatedDateTime < dateTime) || (x.RetriedCount != 0 && x.UpdatedDateTime < dateTime))
                           .ToList();

            if (messages.Any())
            {
                foreach (var email in messages)
                {
                    _emailMessageCreatedEventSender.Send(new EmailMessageCreatedEvent {
                        Id = email.Id
                    });

                    email.RetriedCount++;

                    _repository.AddOrUpdate(email);
                    _repository.UnitOfWork.SaveChanges();
                }
            }
            else
            {
                _logger.LogInformation("No email to resend.");
            }

            return(messages.Count);
        }
Esempio n. 24
0
 public static void Send <TMessage>(this IMessageSender <TMessage> sender, IPAddress ipAddress, int port, byte[] data, int index, int count, Action <Exception?>?callback)
     where TMessage : IMessage <IPEndPoint, ArraySegment <byte> >, new()
 {
     Ensure.ArgumentNotNull(data, "data");
     Ensure.ArgumentNotNull(ipAddress, "ipAddress");
     sender.Send(new IPEndPoint(ipAddress, port), new ArraySegment <byte>(data, index, count), callback);
 }
Esempio n. 25
0
        protected void SendMessage(string id, string destination, IMessage message, IMessageSender messageSender)
        {
            var logContext = $"{nameof(SendMessage)} id='{id}', destination='{destination}'";

            Logger.LogDebug($"+{logContext}");
            if (id == null)
            {
                if (message.GetHeader(MessageHeaders.Id) == null)
                {
                    Logger.LogError($"{logContext}: Message missing Id header");
                    throw new ArgumentNullException(nameof(id), "message needs an id");
                }
            }
            else
            {
                message.SetHeader(MessageHeaders.Id, id);
            }

            message.SetHeader(MessageHeaders.Destination, destination);

            message.SetHeader(MessageHeaders.Date, HttpDateHeaderFormatUtil.NowAsHttpDateString());

            PreSend(message);
            try
            {
                messageSender.Send(message);
                PostSend(message, null);
            }
            catch (Exception e)
            {
                Logger.LogError(e, $"{logContext}: Exception sending message");
                PostSend(message, e);
                throw;
            }
        }
Esempio n. 26
0
    public static void SendMessageToServer(string message)
    {
        IObjectContainer objectContainer = null;

        try
        {
            // connect to the server
            objectContainer = Db4oFactory.OpenClient(ServerConfiguration.Host, ServerConfiguration.Port, ServerConfiguration.User, ServerConfiguration.Password);
        }
        catch (Exception e)
        {
            Console.WriteLine(e.ToString());
        }

        if (objectContainer != null)
        {
            // get the messageSender for the IObjectContainer
            IMessageSender messageSender = objectContainer.Ext()
                                           .Configure().ClientServer().GetMessageSender();

            // send an instance of a StopServer object
            messageSender.Send(message);

            // close the IObjectContainer
            objectContainer.Close();
        }
    }
        /// <summary>
        /// Sends a message.
        /// </summary>
        /// <param name="messageSender">The extended <see cref="IMessageSender"/>.</param>
        /// <param name="message">The <see cref="IMessageDescriptor">message</see> to send.</param>
        /// <param name="cancellationToken">A <see cref="CancellationToken">token</see> that can be used to cancel the operation.</param>
        /// <returns>A <see cref="Task">task</see> representing the asynchronous operation.</returns>
        public static Task Send(this IMessageSender messageSender, IMessageDescriptor message, CancellationToken cancellationToken)
        {
            Arg.NotNull(messageSender, nameof(messageSender));
            Arg.NotNull(message, nameof(message));

            return(messageSender.Send(new[] { message }, cancellationToken));
        }
        public int ResendSmsMessage()
        {
            var dateTime = _dateTimeProvider.OffsetNow.AddMinutes(-1);

            var messages = _repository.GetAll()
                           .Where(x => x.SentDateTime == null && x.RetriedCount < 3)
                           .Where(x => (x.RetriedCount == 0 && x.CreatedDateTime < dateTime) || (x.RetriedCount != 0 && x.UpdatedDateTime < dateTime))
                           .ToList();

            if (messages.Any())
            {
                foreach (var sms in messages)
                {
                    _smsMessageCreatedEventSender.Send(new SmsMessageCreatedEvent {
                        Id = sms.Id
                    });
                    _repository.IncreaseRetry(sms.Id);
                }
            }
            else
            {
                _logger.LogInformation("No SMS to resend.");
            }

            return(messages.Count);
        }
Esempio n. 29
0
        public void PurgeTimeouts()
        {
            lock (LockObject)
            {
                var array = new ReplyWait[_internal.Count];
                _internal.Values.CopyTo(array, 0);
                foreach (var replyWait in array)
                {
                    if (!replyWait.IsTimeout)
                    {
                        Logger.Verbose("Timeout message attempt {0} for {1} sent to {2} correlation {3}", replyWait.Attempts, replyWait.Package.EndPoint, replyWait.Sent.ToLocalTime(), replyWait.CorrelationId);
                        continue;
                    }

                    if (replyWait.Attempts++ >= 3)
                    {
                        _internal.Remove(replyWait.CorrelationId);
                        PeerInfo peerInfo;
                        if (_peerList.TryGet(replyWait.Package.EndPoint, out peerInfo))
                        {
                            _peerList.Punish(peerInfo.BotId);
                        }
                    }
                    else
                    {
                        replyWait.Sent = DateTimeProvider.UtcNow;
                        Logger.Verbose("Retrying message attempt {0} for {1} sent to {2} correlation {3}", replyWait.Attempts, replyWait.Package.EndPoint, replyWait.Sent.ToLocalTime(), replyWait.CorrelationId);
                        _messageSender.Send(replyWait.Package.EndPoint, replyWait.Package.Data);
                    }
                }
            }
        }
Esempio n. 30
0
        public async Task <MessageResult> Send(InvokeMessage message)
        {
            var watch = Stopwatch.StartNew();

            try
            {
                if (_logger.IsEnabled(LogLevel.Debug))
                {
                    _logger.LogDebug("准备发送消息");
                }
                var callback = RegistCallbackAsync(message.Id);
                if (_logger.IsEnabled(LogLevel.Debug))
                {
                    _logger.LogDebug($"{_sender.GetType()}:send :{JsonConvert.SerializeObject(message)}");
                }
                //发送
                await _sender.Send(message);

                if (_logger.IsEnabled(LogLevel.Debug))
                {
                    _logger.LogDebug("消息发送成功");
                }
                return(await callback);
            }
            finally
            {
                watch.Stop();
                if (_logger.IsEnabled(LogLevel.Debug))
                {
                    _logger.LogDebug($"send message {watch.ElapsedMilliseconds} ms");
                }
            }
        }
		private void SendAll(IEnumerable messages, IMessageSender sender)
		{
			IEnumerator iterator = messages.GetEnumerator();
			while (iterator.MoveNext())
			{
				sender.Send(iterator.Current);
			}
		}
Esempio n. 32
0
		private void SendEvenOddMessages(IMessageSender even, IMessageSender odd)
		{
			for (int i = 0; i < 10; ++i)
			{
				int message = i;
				if (i % 2 == 0)
				{
					even.Send(message);
				}
				else
				{
					odd.Send(message);
				}
			}
		}