예제 #1
0
        public void Start()
        {
            this.loadWorkflows();
            ServiceBusEnvironment.SystemConnectivity.Mode = ConnectivityMode.Http;
            topicName        = ConfigurationManager.AppSettings["SERVICEBUS_TOPICNAME"];
            subscriptionName = ConfigurationManager.AppSettings["SERVICEBUS_AUTOMATIONSUBSCRIPTION_NAME"];
            pubSubService.Initialize();

            messagingFactory = CreateMessagingFactory();


            client = messagingFactory.CreateSubscriptionClient(topicName, subscriptionName);

            this.ProcessMessage();
            //this.ProcessDeadMessages();

            Logger.Current.Informational("Service bus subscription client created successfully.");
            observable = Observable.Create <BrokeredMessage>(
                observer =>
            {
                OnMessageOptions options   = new OnMessageOptions();
                options.AutoComplete       = false;
                options.AutoRenewTimeout   = new TimeSpan(0, 0, 1, 0, 0);
                options.ExceptionReceived += options_ExceptionReceived;
                client.OnMessage(observer.OnNext, options);
                return(Disposable.Empty);
            }).Publish().RefCount();

            observable.Subscribe(x =>
            {
                Logger.Current.Verbose("Recieved message. BrokeredMessageId:" + x.MessageId);
                x.RenewLock();

                var serializedMessage = x.GetBody <string>();
                Message message       = JsonConvert.DeserializeObject <Message>(serializedMessage);
                message.MessageId     = x.MessageId;
                message.LockToken     = x.LockToken;

                Logger.Current.Verbose("Message recieved successfully, details:" + message.ToString());

                this.Feed(message);
            });
        }
예제 #2
0
        public void Start()
        {
            string topicName       = ConfigurationManager.AppSettings["SERVICEBUS_TOPICNAME"];
            string subsriptionName = ConfigurationManager.AppSettings["SERVICEBUS_LEADSCORESUBSCRIPTION_NAME"];

            pubSubService.Initialize();
            Logger.Current.Informational("subscription:" + subsriptionName);
            Logger.Current.Informational("Connection string:" + ConfigurationManager.AppSettings["Microsoft.ServiceBus.ConnectionString"]);
            this.ProcessMessage();

            client = SubscriptionClient.Create(topicName, subsriptionName);

            Logger.Current.Informational("Service bus message queue client created successfully.");
            observable = Observable.Create <BrokeredMessage>(
                observer =>
            {
                client.OnMessage(observer.OnNext, new OnMessageOptions()
                {
                    AutoComplete     = false,
                    AutoRenewTimeout = new TimeSpan(0, 0, 1, 0, 0)
                });
                return(Disposable.Empty);
            }).Publish().RefCount();

            observable.Subscribe(x =>
            {
                Logger.Current.Informational("Recieved message. BrokeredMessageId:" + x.MessageId);
                x.RenewLock();

                var serializedMessage = x.GetBody <string>();
                Message message       = JsonConvert.DeserializeObject <Message>(serializedMessage);

                message.MessageId = x.MessageId;
                message.LockToken = x.LockToken;

                Logger.Current.Informational("Message recieved successfully, details:" + message.ToString());
                this.Feed(message);
            });
        }