public DurableWorkerQueue(Endpoint endpoint, IHandlerPipeline pipeline, AdvancedSettings settings, IEnvelopePersistence persistence, ITransportLogger logger) { _settings = settings; _persistence = persistence; _logger = logger; endpoint.ExecutionOptions.CancellationToken = settings.Cancellation; _receiver = new ActionBlock <Envelope>(async envelope => { try { envelope.ContentType = envelope.ContentType ?? "application/json"; await pipeline.Invoke(envelope, this); } catch (Exception e) { // This *should* never happen, but of course it will logger.LogException(e); } }, endpoint.ExecutionOptions); _policy = Policy .Handle <Exception>() .WaitAndRetryForeverAsync(i => (i * 100).Milliseconds() , (e, timeSpan) => { _logger.LogException(e); }); }
public DurableLocalSendingAgent(Endpoint endpoint, IHandlerPipeline pipeline, AdvancedSettings settings, IEnvelopePersistence persistence, ITransportLogger logger, MessagingSerializationGraph serializers, IMessageLogger messageLogger) : base(endpoint, pipeline, settings, persistence, logger) { _settings = settings; _persistence = persistence; _logger = logger; _serializers = serializers; _messageLogger = messageLogger; Destination = endpoint.Uri; Endpoint = endpoint; ReplyUri = TransportConstants.RepliesUri; }
public RunScheduledJobs(IWorkerQueue workers, SqlServerSettings mssqlSettings, ITransportLogger logger, IRetries retries, MessagingSettings settings) { _workers = workers; _mssqlSettings = mssqlSettings; _logger = logger; _retries = retries; _settings = settings; _persistor = new SqlServerEnvelopePersistor(_mssqlSettings); _findReadyToExecuteJobs = $"select body from {mssqlSettings.SchemaName}.{SqlServerEnvelopePersistor.IncomingTable} where status = '{TransportConstants.Scheduled}' and execution_time <= @time"; }
public SchedulingAgent(ISubscriberGraph subscribers, IWorkerQueue workers, IDocumentStore store, MessagingSettings settings, ITransportLogger logger, StoreOptions storeOptions, IRetries retries, EnvelopeTables tables) : base(settings, logger, new RunScheduledJobs(workers, store, tables, logger, retries), new RecoverIncomingMessages(workers, settings, tables, logger), new RecoverOutgoingMessages(subscribers, settings, tables, logger), new ReassignFromDormantNodes(tables, settings) ) { _store = store; }
public ExternalTransportBase(string protocol, TSettings options, ITransportLogger logger, JasperOptions jasperOptions) : base(protocol, logger, jasperOptions) { _options = options; }
public RunScheduledJobs(IWorkerQueue workers, IDocumentStore store, EnvelopeTables marker, ITransportLogger logger, IRetries retries) { _workers = workers; _marker = marker; _logger = logger; _retries = retries; _persistor = new MartenEnvelopePersistor(store, _marker); _findReadyToExecuteJobs = $"select body from {marker.Incoming} where status = '{TransportConstants.Scheduled}' and execution_time <= :time"; _markOwnedIncomingSql = $"update {marker.Incoming} set owner_id = :owner, status = '{TransportConstants.Incoming}' where id = ANY(:idlist)"; }
public TcpTransport(IDurableMessagingFactory factory, ITransportLogger logger, MessagingSettings settings) : base("tcp", factory, logger, settings) { }
public IListeningAgent CreateListeningAgent(Uri uri, MessagingSettings settings, ITransportLogger logger) { return(new RabbitMQListeningAgent(uri, logger, _model.Value, EnvelopeMapping, this)); }
public ISender CreateSender(ITransportLogger logger, CancellationToken cancellation) { // TODO -- will need to create a reply uri & listener here return(new RabbitMQSender(logger, this, _model.Value, cancellation)); }
public static void LogTransportEventsWith(this Jasper.Configuration.Logging logging, ITransportLogger logger) { logging.Parent.Services.AddSingleton <ITransportLogger>(logger); }
public BatchedSender(Uri destination, ISenderProtocol protocol, CancellationToken cancellation, ITransportLogger logger) { Destination = destination; _protocol = protocol; _cancellation = cancellation; _logger = logger; }