Ejemplo n.º 1
0
        public void Run(IConnection nats, ConnectionMultiplexer redis)
        {
            var events = nats.Observe("events")
                         .Where(m => m.Data?.Any() == true)
                         .Select(m => Encoding.Default.GetString(m.Data));

            events.Subscribe(msg =>
            {
                IDatabase db = redis.GetDatabase();
                string id    = msg.Split('|').Last();
                string JSON  = db.StringGet(id);
                Console.WriteLine($"Successfully got message {id}");
                RedisPayloadModel model = null;
                try
                {
                    model = JsonSerializer.Deserialize <RedisPayloadModel>(JSON);
                }
                catch (Exception ex)
                {
                    Console.Error.WriteLine($"Deserialize error: {ex.Message}");
                    return;
                }
                Console.WriteLine("Starting calculating rank...");
                double rank = GetTextRank(model.Data);
                Console.WriteLine($"Calculation has been successfull! Rank is {rank}");
                model.Rank  = rank;
                var payload = JsonSerializer.Serialize(model);
                db.StringSet(id, payload);
            });
        }
Ejemplo n.º 2
0
        private void PublishRedisMessage(string id, string description, string data)
        {
            var model = new RedisPayloadModel {
                Description = description, Data = data
            };
            string    result = JsonSerializer.Serialize(model);
            IDatabase db     = _redis.GetDatabase();

            db.StringSet(id, result);
        }