public NsqTcpConnection(DnsEndPoint endPoint, ConsumerOptions options, IBackoffStrategy backoffStrategy) { _endPoint = endPoint; _options = options; _backoffStrategy = backoffStrategy; _connectionClosedSource = new CancellationTokenSource(); _workerThread = new Thread(WorkerLoop); _workerThread.Name = "Turbocharged.NSQ Worker"; }
public NsqLookupConsumer(ConsumerOptions options) { _options = options; foreach (var lookupEndPoint in options.LookupEndPoints) { _lookupServers.Add(new NsqLookup(lookupEndPoint.Host, lookupEndPoint.Port)); } _firstConnectionTask = _firstConnectionTaskCompletionSource.Task; }
public static INsqConsumer Create(ConsumerOptions options) { if (options.LookupEndPoints.Any()) { return new NsqLookupConsumer(options); } else { return new NsqTcpConnection(options.NsqEndPoint, options); } }
public Identify(ConsumerOptions options) { _identifyRequest = new IdentifyRequest { client_id = options.ClientId, hostname = options.HostName, feature_negotiation = true, tls_v1 = false, snappy = false, deflate = false, }; }
public NsqTcpConnection(DnsEndPoint endPoint, ConsumerOptions options) : this(endPoint, options, new ExponentialBackoffStrategy(TimeSpan.FromSeconds(1), TimeSpan.FromSeconds(30))) { }
public NsqLookupConsumer(string connectionString) : this(ConsumerOptions.Parse(connectionString)) { }
public static INsqConsumer Create(string connectionString) { return(Create(ConsumerOptions.Parse(connectionString))); }
/// <summary> /// Parses a connection string into a <c>ConsumerOptions</c> instance. /// </summary> /// <param name="connectionString">A semicolon-delimited list of key=value pairs of connection options.</param> /// <returns></returns> public static ConsumerOptions Parse(string connectionString) { var options = new ConsumerOptions(); var parts = ParseIntoSegments(connectionString); var sb = new StringBuilder(); if (parts.Contains(LOOKUPD_KEY)) { foreach (var endPoint in ParseEndPoints(parts[LOOKUPD_KEY], DEFAULT_LOOKUPD_HTTP_PORT)) { options.LookupEndPoints.Add(endPoint); } } else if (parts.Contains(NSQD_KEY)) { options.NsqEndPoint = ParseEndPoints(parts[NSQD_KEY], DEFAULT_NSQD_TCP_PORT).Last(); } else { throw new ArgumentException("Must provide either nsqlookupd or nsqd endpoints"); } if (parts.Contains(CLIENTID_KEY)) { options.ClientId = parts[CLIENTID_KEY].Last(); } if (parts.Contains(HOSTNAME_KEY)) { options.HostName = parts[HOSTNAME_KEY].Last(); } if (parts.Contains(LOOKUPPERIOD_KEY)) { options.LookupPeriod = TimeSpan.FromSeconds(int.Parse(parts[LOOKUPPERIOD_KEY].Last())); } if (parts.Contains(TOPIC_KEY)) { options.Topic = parts[TOPIC_KEY].Last(); } if (parts.Contains(CHANNEL_KEY)) { options.Channel = parts[CHANNEL_KEY].Last(); } if (parts.Contains(RECONNECTIONDELAY_KEY)) { options.ReconnectionDelay = TimeSpan.FromSeconds(int.Parse(parts[RECONNECTIONDELAY_KEY].Last())); } if (parts.Contains(RECONNECTIONMAXDELAY_KEY)) { options.ReconnectionMaxDelay = TimeSpan.FromSeconds(int.Parse(parts[RECONNECTIONMAXDELAY_KEY].Last())); } return options; }