public SerializeFormatProvider(String name, IFormatChecker formatChecker, ISerializeProvider serializeProvider, ICryptionProvider cryption)
 {
     Name               = name;
     _formatChecker     = formatChecker;
     _serializeProvider = serializeProvider;
     _cryption          = cryption;
 }
Beispiel #2
0
        public static void SetDefaultSerializeProvider(ISerializeProvider provider)
        {
            if (provider == null)
            {
                throw new ArgumentNullException(nameof(provider));
            }

            _defaultSerializeProvider = provider;
        }
Beispiel #3
0
        public RabbitMqConsumerBase(IServiceProvider provider,
                                    ILogger logger, IConnection connection, ISerializeProvider _serializer,
                                    ConsumeOption option)
        {
            provider.Should().NotBeNull();
            logger.Should().NotBeNull();
            connection.Should().NotBeNull();
            _serializer.Should().NotBeNull();
            option.Should().NotBeNull();

            this.provider    = provider;
            this.logger      = logger;
            this._serializer = _serializer;
            this._option     = option;
            this._option.Valid();

            this._channel = connection.CreateModel();

            //qos
            if (this._option.ConcurrencySize != null)
            {
                this._channel.BasicQos(prefetchSize: 0, prefetchCount: this._option.ConcurrencySize.Value, global: false);
            }

            //异步消费
            this._consumer = new AsyncEventingBasicConsumer(this._channel);

            //注册消费事件
            this._consumer.Received += async(sender, args) =>
            {
                using var s = this.provider.CreateScope();
                try
                {
                    var res = await this.OnMessageReceived(new ConsumerMessage <T>(this._serializer, args));

                    if (!res)
                    {
                        throw new MsgException("未能消费");
                    }
                    if (!this._option.AutoAck)
                    {
                        this._channel.BasicAck(args.DeliveryTag, multiple: true);
                    }
                }
                catch (Exception e)
                {
                    //log errors
                    this.logger.AddErrorLog($"rabbitmq消费发生异常:{e.Message}", e);
                    if (!this._option.AutoAck)
                    {
                        this._channel.BasicNack(args.DeliveryTag, multiple: true, requeue: true);
                    }
                }
            };
        }
Beispiel #4
0
        public ZKConfigurationProvider(ZKConfigurationOption option, AlwaysOnZooKeeperClient client,
                                       ISerializeProvider serializeProvider = null,
                                       Encoding encoding = null)
        {
            this._option     = option;
            this._client     = client;
            this._serializer = serializeProvider ?? new DefaultSerializeProvider();
            this._encoding   = encoding ?? Encoding.UTF8;

            this._node_watcher = new CallBackWatcher(this.NodeWatchCallback);
        }
Beispiel #5
0
        public RabbitmqMessageConsumer(IServiceProvider provider,
                                       ILogger <RabbitmqMessageConsumer <T> > logger,
                                       IConnection connection,
                                       ISerializeProvider _serializer) :
            base(provider, logger, connection, _serializer, new ConsumeOption <T>())
        {
            this._channel.ExchangeDeclare(exchange: ConstConfig.ExchangeName, type: "topic", durable: true, autoDelete: false);
            var queue_res = this._channel.QueueDeclare(this._option.QueueName, durable: true, exclusive: false, autoDelete: false);
            var args      = new Dictionary <string, object>();

            this._channel.RouteFromExchangeToQueue(ConstConfig.ExchangeName, queue_res.QueueName, routing_key: this._option.QueueName, args);
        }
Beispiel #6
0
        public RedisConsumer(IServiceProvider provider,
                             IRedisDatabaseSelector redisDatabaseSelector,
                             ISerializeProvider serializeProvider,
                             ILogger <RedisConsumer <T> > logger)
        {
            this.provider          = provider;
            this.serializeProvider = serializeProvider;
            this.logger            = logger;

            this.redisDatabaseSelector = redisDatabaseSelector;

            this.queue_key = typeof(T).FullName;

            this.cancellationToken = new CancellationTokenSource();
        }
Beispiel #7
0
 public RedisHelper(IConnectionMultiplexer conn, int db, ISerializeProvider serializeProvider = null)
 {
     this._conn       = conn;
     this._database   = this._conn.SelectDatabase(db);
     this._serializer = serializeProvider ?? new DefaultSerializeProvider();
 }
Beispiel #8
0
 public RequestOptions(Encoding encoding, ISerializeProvider serializeProvider)
 {
     _serializeProvider = serializeProvider;
     _encoding          = encoding;
 }
Beispiel #9
0
 public RequestOptions(ISerializeProvider serializeProvider = null)
 {
     _serializeProvider = serializeProvider;
 }
Beispiel #10
0
 /// <summary>
 /// To String
 /// </summary>
 /// <param name="data"></param>
 /// <param name="provider"></param>
 /// <returns></returns>
 public static string ToString(this BaseData data, ISerializeProvider provider)
 {
     return(provider.ObjectToString(data));
 }
Beispiel #11
0
 public RabbitMqProducer(IConnection _connection, ISerializeProvider _serializer)
 {
     this._connection = _connection;
     this._serializer = _serializer;
 }
Beispiel #12
0
 public RedisMessagePublisher(IRedisDatabaseSelector redisDatabaseSelector, ISerializeProvider serializeProvider)
 {
     this.redisDatabaseSelector = redisDatabaseSelector;
     this.serializeProvider     = serializeProvider;
 }
Beispiel #13
0
 public BasicGetMessage(ISerializeProvider _serializer, BasicGetResult res)
 {
     this.MessageModel = _serializer.Deserialize <T>(res.Body.ToArray());
     this.MessageArgs  = res;
 }
Beispiel #14
0
 public ConsumerMessage(ISerializeProvider _serializer, BasicDeliverEventArgs res)
 {
     this.MessageModel = _serializer.Deserialize <T>(res.Body.ToArray());
     this.MessageArgs  = res;
 }