private ChangeFeedProcessor(string name, string siloName, CosmosDBStreamOptions options, IServiceProvider serviceProvider, TaskScheduler scheduler, IStreamMapper mapper) { var loggerFactory = serviceProvider.GetRequiredService <ILoggerFactory>(); this._name = name; this._siloName = siloName; this._scheduler = scheduler; this._grainFactory = serviceProvider.GetRequiredService <IGrainFactory>(); this._logger = loggerFactory.CreateLogger($"{nameof(ChangeFeedProcessor)}-{name}"); this._mapper = mapper; this._options = options; this._ctsClose = new CancellationTokenSource(); this._checkpointer = new ChangeFeedCheckpointer(loggerFactory, this._options); }
/// <summary> /// Factory method to create a new IProcessor instances /// </summary> /// <param name="name">Name of the stream provider</param> /// <param name="siloName">This Silo name</param> /// <param name="options">Configuration for both the monitored and lease collections</param> /// <param name="serviceProvider">DI container</param> /// <param name="scheduler">Orleans Task Scheduler</param> /// <param name="mapper">The IStreamMapper implementation</param> /// <returns>IProcessor implementation</returns> public static IProcessor Create(string name, string siloName, CosmosDBStreamOptions options, IServiceProvider serviceProvider, TaskScheduler scheduler, IStreamMapper mapper) { return(new ChangeFeedProcessor(name, siloName, options, serviceProvider, scheduler, mapper)); }
public ChangeFeedCheckpointer(ILoggerFactory loggerFactory, CosmosDBStreamOptions options) { this._interval = options.CheckpointInterval; this._logger = loggerFactory.CreateLogger <ChangeFeedCheckpointer>(); this._batches = new ConcurrentQueue <BatchRegistry>(); }
public IdBasedStreamMapper(IOptions <CosmosDBStreamOptions> options, ILoggerFactory loggerFactory) { this._options = options.Value; this._logger = loggerFactory.CreateLogger <IdBasedStreamMapper>(); }