Exemple #1
0
        public IBusControl CreateBus(IBusServiceConfigurator busServiceConfigurator, string serviceName)
        {
            serviceName = serviceName.ToLowerInvariant().Trim().Replace(" ", "_");

            var hostSettings = new SettingsAdapter(_settings, serviceName);

            if (hostSettings.ServiceUri == null)
            {
                throw new ConfigurationException("The ServiceBus ServiceUri setting has not been configured");
            }

            return(AzureBusFactory.CreateUsingServiceBus(configurator =>
            {
                var host = configurator.Host(hostSettings.ServiceUri, h =>
                {
                    h.SharedAccessSignature(s =>
                    {
                        s.KeyName = hostSettings.KeyName;
                        s.SharedAccessKey = hostSettings.SharedAccessKey;
                        s.TokenTimeToLive = hostSettings.TokenTimeToLive;
                        s.TokenScope = hostSettings.TokenScope;
                    });
                });

                if (_log.IsInfoEnabled)
                {
                    _log.Info($"Configuring Host: {hostSettings.ServiceUri}");
                }

                var serviceConfigurator = new ServiceBusServiceConfigurator(configurator, host);

                busServiceConfigurator.Configure(serviceConfigurator);
            }));
        }
Exemple #2
0
        private void Run()
        {
            this.bus = AzureBusFactory.CreateBus("Endpoint=sb://servicebus/ServiceBusDefaultNamespace;StsEndpoint=https://servicebus:10355/ServiceBusDefaultNamespace;RuntimePort=10354;ManagementPort=10355");

            this.bus.SubscribeAsync(
                typeof(TestMessage),
                obj => Task.Factory.StartNew(() => Console.WriteLine("Handler Received message: {0}", ((TestMessage)obj).Text)));

            Console.WriteLine("Type a message or 'q' to quit.");

            string text = null;

            while ((text = Console.ReadLine()) != "q")
            {
                this.bus.Publish(
                    typeof(TestMessage),
                    new TestMessage
                {
                    Text = text
                },
                    DateTime.Now.AddMinutes(1));
            }

            this.bus.Dispose();
        }
Exemple #3
0
        public static void Main(string[] args)
        {
            var bus =
                AzureBusFactory.CreateBus(
                    new AzureNetQSettings
            {
                Logger = () => new NoDebugLogger(),
                ConnectionConfiguration = new ConnectionConfiguration
                {
                    PrefetchCount      = 200,
                    MaxConcurrentCalls = 100,
                    BatchingInterval   = TimeSpan.FromMilliseconds(50)
                }
            });

            bus.RespondAsync <TestAsyncRequestMessage, TestAsyncResponseMessage>(HandleAsyncRequest);

            Console.WriteLine("Waiting to service requests");
            Console.WriteLine("Ctrl-C to exit");

            Console.CancelKeyPress += (source, cancelKeyPressArgs) =>
            {
                bus.Dispose();
                Console.WriteLine("Shut down complete");
            };

            Thread.Sleep(Timeout.Infinite);
        }
Exemple #4
0
        static IBusControl ConfigureBus()
        {
            return(AzureBusFactory.CreateUsingServiceBus(cfg =>
            {
                cfg.Message <IContrato>(x => x.SetEntityName(TopicName));

                var host = cfg.Host(ServiceBusConnectionString, h =>
                {
                    h.RetryLimit = 3;
                    h.OperationTimeout = TimeSpan.FromSeconds(30);
                });

                cfg.ReceiveEndpoint("masstransitsender", c =>
                {
                    EndpointConvention.Map <IContrato>(c.InputAddress);
                });
            }));
        }
        public IBusControl CreateBus(IBusServiceConfigurator busServiceConfigurator, string serviceName)
        {
            if (string.IsNullOrEmpty(_hostSettings.Namespace))
            {
                throw new ConfigurationException("The ServiceBus Namespace setting has not been configured");
            }

            if (string.IsNullOrEmpty(_hostSettings.KeyName))
            {
                throw new ConfigurationException("The ServiceBus KeyName setting has not been configured");
            }

            if (string.IsNullOrEmpty(_hostSettings.SharedAccessKey))
            {
                throw new ConfigurationException("The ServiceBus SharedAccessKey setting has not been configured");
            }

            return(AzureBusFactory.CreateUsingServiceBus(configurator =>
            {
                serviceName = serviceName.ToLowerInvariant().Trim().Replace(" ", "_");
                _hostSettings.ServiceUri = ServiceBusEnvironment.CreateServiceUri("sb",
                                                                                  _hostSettings.Namespace, serviceName);

                var host = configurator.Host(_hostSettings.ServiceUri, h =>
                {
                    h.SharedAccessSignature(s =>
                    {
                        s.KeyName = _hostSettings.KeyName;
                        s.SharedAccessKey = _hostSettings.SharedAccessKey;
                        s.TokenTimeToLive = _hostSettings.TokenTimeToLive;
                        s.TokenScope = _hostSettings.TokenScope;
                    });
                });

                if (_log.IsInfoEnabled)
                {
                    _log.Info($"Configuring Host: { _hostSettings.ServiceUri}");
                }

                var serviceConfigurator = new ServiceBusServiceConfigurator(configurator, host);

                busServiceConfigurator.Configure(serviceConfigurator);
            }));
        }
        public IBusControl CreateBus(IBusServiceConfigurator busServiceConfigurator, string serviceName)
        {
            serviceName = serviceName.ToLowerInvariant().Trim().Replace(" ", "_");

            var hostSettings = new SettingsAdapter(_settings, serviceName);

            if (hostSettings.ServiceUri == null)
            {
                throw new ConfigurationException("The ServiceBus ServiceUri setting has not been configured");
            }

            return(AzureBusFactory.CreateUsingServiceBus(configurator =>
            {
                var host = configurator.Host(hostSettings.ServiceUri, h =>
                {
                    if (!string.IsNullOrWhiteSpace(hostSettings.ConnectionString))
                    {
                        h.TokenProvider = hostSettings.TokenProvider;
                    }
                    else
                    {
                        h.SharedAccessSignature(s =>
                        {
                            s.KeyName = hostSettings.KeyName;
                            s.SharedAccessKey = hostSettings.SharedAccessKey;
                            s.TokenTimeToLive = hostSettings.TokenTimeToLive;
                            s.TokenScope = hostSettings.TokenScope;
                        });
                    }
                });

                LogContext.Info?.Log("Configuring Host: {Host}", hostSettings.ServiceUri);

                var serviceConfigurator = new ServiceBusServiceConfigurator(configurator);

                busServiceConfigurator.Configure(serviceConfigurator);
            }));
        }
Exemple #7
0
        private void Run()
        {
            this.bus = AzureBusFactory.CreateBus();

            this.bus.Receive(
                SendReceiveQueue,
                handlers => handlers
                .Add <TestSendMessage>(msg => Console.WriteLine("Handler 1 Received message: {0}", msg.Text))
                .Add <TestSendMessage2>(msg => Console.WriteLine("Handler 2 Received message: {0}", msg.Text)));

            this.bus.Receive <TestSendMessageBase>(AuditQueue, msg => Console.WriteLine("Auditor Received message: {0}", msg.Text));

            Console.WriteLine("Type a message or 'q' to quit.");

            string text = null;

            while ((text = Console.ReadLine()) != "q")
            {
                foreach (var queue in new[] { SendReceiveQueue, AuditQueue })
                {
                    this.bus.Send(
                        queue,
                        new TestSendMessage
                    {
                        Text = text
                    });

                    this.bus.Send(
                        queue,
                        new TestSendMessage2
                    {
                        Text = text
                    });
                }
            }

            this.bus.Dispose();
        }
Exemple #8
0
        public static void AddMassTransitAzureServiceBus(this IServiceCollection services, IConfiguration configuration)
        {
            services.AddMassTransit(masstransit =>
            {
                masstransit.AddConsumer <ContractConsumer>();

                masstransit.AddBus(provider => AzureBusFactory.CreateUsingServiceBus(cfg =>
                {
                    cfg.UseExtensionsLogging(provider.GetRequiredService <ILoggerFactory>());

                    cfg.Message <IContrato>(m => m.SetEntityName(configuration.GetValue <string>("Bus:Topic")));

                    var host = cfg.Host(configuration.GetValue <string>("Bus:ConnectionString"), h =>
                    {
                        h.RetryLimit       = 3;
                        h.OperationTimeout = TimeSpan.FromSeconds(30);
                    });

                    cfg.ReceiveEndpoint("masstransitreceiver", c => {
                        c.Consumer <ContractConsumer>(provider);
                    });
                }));
            });
        }
Exemple #9
0
 /// <summary>
 /// Configure and create a bus for Azure Service Bus
 /// </summary>
 /// <param name="selector">Hang off the selector interface for visibility</param>
 /// <param name="configure">The configuration callback to configure the bus</param>
 /// <returns></returns>
 public static IBusControl CreateUsingAzureServiceBus(this IBusFactorySelector selector, Action <IServiceBusBusFactoryConfigurator> configure)
 {
     return(AzureBusFactory.CreateUsingServiceBus(configure));
 }