コード例 #1
0
        protected override void DoSetUp()
        {
            events = new ConcurrentQueue<string>();
            builtinContainerAdapter = new BuiltinContainerAdapter();

            TrackDisposable(builtinContainerAdapter);

            using (var q = new AzureServiceBusMessageQueue(AzureServiceBusMessageQueueFactory.ConnectionString, QueueName))
            {
                q.Purge();
            }

            Configure.With(builtinContainerAdapter)
                .Logging(l => l.Console(minLevel: LogLevel.Info))
                .Transport(t => t.UseAzureServiceBus(AzureServiceBusMessageQueueFactory.ConnectionString, QueueName, "error"))
                .Events(e =>
                {
                    e.MessageContextEstablished += (bus, context) =>
                    {
                        WriteEvent("msg context established");

                        context.Disposed += () =>
                        {
                            WriteEvent("msg context disposed");
                        };
                    };

                    e.AddUnitOfWorkManager(new EventOutputtingUnitOfWorkManager(text => WriteEvent(text)));
                })
                .CreateBus().Start(1);
        }
        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.Purge();
            }

            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);
        }