예제 #1
0
        public void Handle(KafkaEventStream stream)
        {
            try
            {
                this.log.Info($"{this.GetType().Name} Data:{stream.Data}");
                using (var scope = Applibs.AutoFacConfig.Container.BeginLifetimeScope())
                {
                    var @event = JsonConvert.DeserializeObject <PubMessageEvent>(stream.Data);
                    var repo   = scope.Resolve <IPubMessageRepository>();

                    var result = repo.Add(new PubMessage()
                    {
                        Content = @event.Content
                    });

                    if (result.Item1 != null)
                    {
                        throw result.Item1;
                    }

                    HubClient.BocastMessage(result.Item2);
                }
            }
            catch (Exception ex)
            {
                this.log.Error($"PubMessageEventHandler Exception: {ex.Message}");
            }
        }
예제 #2
0
        public void Publish <T>(string topicName, int suffix, T data)
        {
            var es = new KafkaEventStream(
                typeof(T).Name,
                JsonConvert.SerializeObject(data),
                TimeStampHelper.ToUtcTimeStamp(DateTime.Now));

            publisher?.ProduceAsync(topicName, $"{es.Type}.{suffix}", JsonConvert.SerializeObject(es))
            .ConfigureAwait(false);

            /*deliveryReport?.ContinueWith(task =>
             * {
             *  //communicator.getLogger().trace("", $"Partition: {task.Result.Partition}, Offset: {task.Result.Offset}");
             * });*/
        }