예제 #1
0
        public void Start(IStartupSettings startupSettings)
        {
            const int consumers = 4;

            CancellationTokenSource tokenSource = new CancellationTokenSource();

            Enumerable.Range(0, consumers).Iter(x => { Task.Factory.StartNew(() => ProcessLetter(tokenSource.Token), tokenSource.Token); });

            _tokenSource = tokenSource.ToOption();
        }
예제 #2
0
        public void Load(IStartupSettings startupSettings)
        {
            var queueSettings = QueueSettings.Create(startupSettings);

            Logger.Info("Connecting to queue...");
            IConnection connection = new RabbitConnectionFactory()
                                     .LinkTo(queueSettings.RabbitAmqpUri)
                                     .Create();

            Logger.Info("Connected to queue {0}", connection.Endpoint);
            _connection = connection.ToOption();
        }
예제 #3
0
        public void Load(IStartupSettings settings)
        {
            // http://www.rabbitmq.com/uri-spec.html
            // http://lostechies.com/derekgreer/2012/03/18/rabbitmq-for-windows-hello-world-review/
            // amqp://guest:guest@localhost:5672/%2f
            var connectionUri = settings.GetValue <string>(UriStartupKey);

            _connectionFactory = new ConnectionFactory
            {
                Uri      = connectionUri,
                Protocol = Protocols.DefaultProtocol
            }.ToOption();
        }
예제 #4
0
 public static QueueSettings Create(IStartupSettings settings)
 {
     try
     {
         return(new QueueSettings
         {
             RabbitAmqpUri = settings.GetValue <string>(RabbitMqAmqpUriKey)
         });
     }
     catch (Exception e)
     {
         Logger.Error("Loading settings failed", e);
         throw new StartupConfigurationException(string.Format("Startup Settings corrupted: {0}", RabbitMqAmqpUriKey));
     }
 }
예제 #5
0
 public static HostSettings Create(IStartupSettings settings)
 {
     try
     {
         return(new HostSettings
         {
             ServiceHostUri = new Uri(settings.GetValue <string>(ServiceServiceHostUriKey))
         });
     }
     catch (Exception e)
     {
         Logger.Error("Loading settings failed", e);
         throw new StartupConfigurationException(string.Format("Startup Settings corrupted: {0}",
                                                               ServiceServiceHostUriKey));
     }
 }
예제 #6
0
        public void Load(IStartupSettings startupSettings)
        {
            IConnection connection = _manager.GetConnection();
            IMessageEnqueuer <IncomingChildLetter> letterEnqueuer = RabbitQueue.Producer()
                                                                    .UseExchange(x =>
            {
                x.Name = QueueKeys.IncomingLetters.ExchangeName;
                x.Type = RabbitExchangeType.Direct;
            })
                                                                    .Queue(x =>
            {
                x.Name          = QueueKeys.IncomingLetters.QueueName;
                x.Durable       = true;
                x.PrefetchCount = 16 * 1000;
                x.RoutingKey    = QueueKeys.IncomingLetters.RoutingKey;
            })
                                                                    .Create <IncomingChildLetter>(connection);

            _letterEnqueuer = letterEnqueuer.ToOption();
        }
예제 #7
0
 public abstract void Start(IStartupSettings startupSettings);
예제 #8
0
 public void Load(IStartupSettings startupSettings)
 {
 }
예제 #9
0
        public override void Start(IStartupSettings startupSettings)
        {
            var hostSettings = HostSettings.Create(startupSettings);

            OpenServiceHost(hostSettings);
        }
예제 #10
0
        public void Load(IStartupSettings settings)
        {
            var connectionUri = settings.GetValue <string>(UriStartupKey);

            _redis = ConnectionMultiplexer.Connect(connectionUri);
        }
 public void Load(IStartupSettings startupSettings)
 {
     _connectionFactory = new RabbitConnectionFactory().LinkTo("").ToOption();
     _connection        = _connectionFactory.Map(x => x.Create());
 }
예제 #12
0
 public void Start(IStartupSettings startupSettings)
 {
     _toyOrderProcessors.ExecuteAllOrRollback(x => x.Start(), x => x.Stop());
 }