예제 #1
0
        protected override void DoSetUp()
        {
            SqlServerFixtureBase.DropTable(SagaIndex);
            SqlServerFixtureBase.DropTable(SagaTable);

            var busConnection = AzureServiceBusMessageQueueFactory.ConnectionString;
            var sqlConnection = SqlServerFixtureBase.ConnectionString;

            using (var azureQueue = new AzureServiceBusMessageQueue(busConnection, InputQueueName))
            {
                azureQueue.Delete();
            }

            allRepliesReceived = new ManualResetEvent(false);

            adapter = new BuiltinContainerAdapter();
            adapter.Register(() => new RequestHandler(adapter.Bus));

            sagaPersister = new SqlServerSagaPersister(sqlConnection, SagaIndex, SagaTable).EnsureTablesAreCreated();

            Configure.With(TrackDisposable(adapter))
            .Logging(l => l.ColoredConsole(LogLevel.Warn))
            .Transport(t => t.UseAzureServiceBus(busConnection, InputQueueName, "error"))
            .Sagas(s => s.Use(sagaPersister))
            .Behavior(b => b.SetMaxRetriesFor <Exception>(100))
            .CreateBus()
            .Start(3);
        }
        void InitializeBus(int numberOfRetries, BuiltinContainerAdapter adapter, ManualResetEvent poisonEventToSet)
        {
            RebusLoggerFactory.Current = new ConsoleLoggerFactory(false)
            {
                MinLevel = LogLevel.Warn
            };

            var connectionString = AzureServiceBusMessageQueueFactory.ConnectionString;

            using (var queue = new AzureServiceBusMessageQueue(connectionString, "test_input"))
            {
                queue.Delete();
            }

            Configure.With(adapter)
            .Transport(t => t.UseAzureServiceBus(connectionString, "test_input", "error"))
            .Behavior(b => b.SetMaxRetriesFor <FacilityException>(numberOfRetries))
            .Events(e => e.PoisonMessage += (bus, message, info) => poisonEventToSet.Set())
            .CreateBus()
            .Start(1);
        }
        protected override void DoSetUp()
        {
            events = new ConcurrentQueue <string>();

            adapter = new BuiltinContainerAdapter();

            TrackDisposable(adapter);

            using (var queue = new AzureServiceBusMessageQueue(connectionString, QueueName))
            {
                queue.Delete();
            }

            AzureServiceBusMessageQueue.PeekLockDurationOnQueueInitialization = TimeSpan.FromMinutes(1);

            Configure.With(adapter)
            .Logging(l => l.Console(minLevel: LogLevel.Info))
            .Transport(t => t.UseAzureServiceBus(connectionString, QueueName, "error")
                       .AutomaticallyRenewPeekLockEvery(TimeSpan.FromMinutes(0.8)))
            .CreateBus()
            .Start();
        }