コード例 #1
0
        static ExactlyOnceConfiguration RegisterServices(this IServiceCollection services)
        {
            var outboxConfiguration = new OutboxConfiguration();
            var configuration       = new ExactlyOnceConfiguration(outboxConfiguration);

            services.AddLogging();

            services.AddSingleton <IOnceExecutor>(sp =>
            {
                var stateStore = (IStateStore)sp.GetRequiredService(configuration.StateStoreType);
                var client     = sp.GetRequiredService <CosmosClient>();

                var outboxStore  = new OutboxStore(client, outboxConfiguration);
                var processor    = new ExactlyOnceProcessor(outboxStore, stateStore);
                var onceExecutor = new OnceExecutor(processor);

                return(onceExecutor);
            });

            return(configuration);
        }
コード例 #2
0
        public IOnceExecutor Create(string requestId)
        {
            var executor = new OnceExecutor <OnceExecutor.Request>(processor, requestId, requestId);

            return(new OnceExecutor(executor));
        }