protected virtual void SubscribeToQueue() { Subscription = SubscriptionClient.GetSubscription(); Subscription.OnMessage = (queue, message) => { Log.Debug("Message received: " + message); Nudged = (QueueSystemMessages.TaskAvailable.ToString() == message); if (Nudged) { MonitorThread.Interrupt(); } }; SubscriberThread.Start(); }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { var settings = SubscriberSettings.ReadSettings(); var items = Reader.Read <Subscription>(settings.InputPath); var resourceStore = new ResourceStore <Subscription>(items); var subscriberThread = new SubscriberThread(resourceStore, settings); new Thread(new ThreadStart(subscriberThread.Procedure)).Start(); var builder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true); IConfigurationRoot configuration = builder.Build(); services.Configure <SubscriberSettings>(configuration.GetSection("Settings")); services.AddControllers(); }
protected virtual void UnSubscribeFromQueue() { SubscriberThread.Interrupt(); }