public object RescheduleFailed(String queueName) { if (QueueDispatcher != null) { var success = QueueDispatcher.ReScheduleFailed(queueName); return(new { Success = success }); } return(new { Error = "Queue manager infrastructure not started" }); }
static void Main(string[] args) { var queueDispatcher = new QueueDispatcher("Test"); for (int i = 1; i <= 200; i++) { var count = i % 4; queueDispatcher.Publish($"Hello {i}" + "".PadRight(count == 0 ? 1 : count, '.')); } Console.ReadLine(); }
public static void Main(string[] args) { IQueueDispatcher queueDispatcher = new QueueDispatcher(new ParallelTaskHandler()); queueDispatcher.Start(); //--- queueDispatcher.Enqueue(new AsyncTask <string>("http://ya.ru", DownloadAction, 3000)); queueDispatcher.Enqueue(new AsyncTask <string>("http://rambler.ru", DownloadAction)); queueDispatcher.Enqueue(new AsyncTask <string>("http://mail.ru", DownloadAction)); //--- System.Console.ReadKey(); }
static void Main(string[] args) { Menu menu = new Menu(); Bus bus = new Bus(); Manager manager = new Manager(); var managerQueue = new QueuedHandler <OrderCompleted>(manager, "Manager Queue"); cashier = new Cashier(bus); var cashierQueue = new QueuedHandler <PayForOrder>(cashier, "Cashier Queue"); AssistantManager assistantManager = new AssistantManager(bus); var assistantManagerQueue = new QueuedHandler <PriceOrder>(assistantManager, "Assistant Manager Queue"); Cook cook1 = new Cook(bus, 200); var cook1Queue = new QueuedHandler <CookOrder>(cook1, "Cook Queue1"); Cook cook2 = new Cook(bus, 400); var cook2Queue = new QueuedHandler <CookOrder>(cook2, "Cook Queue2"); Cook cook3 = new Cook(bus, 600); var cook3Queue = new QueuedHandler <CookOrder>(cook3, "Cook Queue3"); EvilActor evilActor = new EvilActor(bus); var cookdispatcher = new QueueDispatcher <CookOrder>(new List <QueuedHandler <CookOrder> > { cook1Queue, cook2Queue, cook3Queue }); //var dropper = new MessageDropper<CookOrder>(cookdispatcher); //var ttlh = new TimeToLiveHandler<CookOrder>(dropper); var cookDispatcherQueue = new QueuedHandler <CookOrder>(cookdispatcher, "Cook Dispatcher"); UkRestaurantProcessManagerPool processManagerPool = new UkRestaurantProcessManagerPool(bus); bus.Subscribe(processManagerPool); AlarmClock <OrderPlaced> orderPlacedReminder = new AlarmClock <OrderPlaced>(bus); AlarmClock <CookOrder> cookReminder = new AlarmClock <CookOrder>(bus); Waiter waiter = new Waiter(bus, menu); var orderReadModel = new OrderReadModel(); bus.Subscribe(orderPlacedReminder); bus.Subscribe(cookReminder); bus.Subscribe(cookDispatcherQueue); bus.Subscribe(assistantManagerQueue); bus.Subscribe(cashierQueue); bus.Subscribe(managerQueue); //bus.Subscribe(evilActor); bus.Subscribe <HumanInterventionRequired>(manager); List <IStartable> startable = new List <IStartable> { managerQueue, cashierQueue, assistantManagerQueue, cook1Queue, cook2Queue, cook3Queue, cookDispatcherQueue, orderReadModel }; queues = new List <IMonitorableQueue>() { managerQueue, cashierQueue, assistantManagerQueue, cook1Queue, cook2Queue, cook3Queue, cookDispatcherQueue }; startable.ForEach(s => s.Start()); //Thread monitor = new Thread(Printout) { IsBackground = true }; KeepOnMonitoring = true; //monitor.Start(); Stopwatch sw = new Stopwatch(); sw.Start(); bus.SubscribeToAll <OrderPlaced>(orderReadModel); bus.SubscribeToAll <OrderCooked>(orderReadModel); bus.SubscribeToAll <OrderPriced>(orderReadModel); bus.SubscribeToAll <OrderPaid>(orderReadModel); bus.SubscribeToAll <OrderCompleted>(orderReadModel); for (int i = 0; i <= 20; i++) { Customer cust = new Customer(bus, waiter, cashier); cust.PlaceOrder(); } Console.ReadLine(); KeepOnMonitoring = false; sw.Stop(); Console.WriteLine("Completed in {0} milliseconds", sw.ElapsedMilliseconds); Console.WriteLine("Paid Orders: {0}, Completed Orders: {1}, Total: {2}", paidOrders, manager.Count, manager.Total); Console.ReadLine(); }
public void start() { IMessagingBus bus = MQFactory.Instance.createMessagingBus(); IMQConnection serverConnection = null; IMessageQueue <ExampleMessage> queue = null; IPersistenceQueueStorage <ExampleMessage> queueStorage = null; QueueDispatcher dispatcher = null; try { serverConnection = bus.create(new Uri("bnmq://127.0.0.1:3333")); serverConnection.addListener(new MQConnectionListener()); ISupplier supplier = serverConnection.createSupplier("ExampleSupplier"); Console.WriteLine("Supplier created successfully"); IDictionary <String, Object> storProps = new Dictionary <String, Object>(); storProps.Add("storageName", "MyMemoryStorage"); // For InMemoryDB (It's not HSQLDB!) IPersistenceStorage <ExampleMessage> persistStorage = MQFactory.Instance.createPersistenceStorage <ExampleMessage>("InMemory", storProps); queueStorage = persistStorage.createQueueStorage("MyQueue"); Console.WriteLine("QueueStorage created successfully"); queue = supplier.createQueue <ExampleMessage>("myqueues/queue", queueStorage); Console.WriteLine("MessageQueue created successfully"); serverConnection.start(); Console.WriteLine("Listener created successfully"); dispatcher = new QueueDispatcher(queue); dispatcher.start(); Console.WriteLine("Example queue dispatcher started successfully"); Console.WriteLine("Please enter to exit"); Console.ReadKey(); Console.WriteLine("Trying to stop example queue dispatcher"); dispatcher.stop(); } catch (Exception e) { Console.WriteLine(e.ToString()); } finally { if (serverConnection != null) { Console.WriteLine("Trying to close listener"); serverConnection.close(); } if (queue != null) { Console.WriteLine("Trying to stop queue"); queue.stop(); } if (queueStorage != null) { Console.WriteLine("Trying to close queue storage"); queueStorage.close(); } if (bus != null) { Console.WriteLine("Trying to finallize messaging bus"); bus.close(); } } }
public void start() { IMessagingBus bus = MQFactory.Instance.createMessagingBus(); IMQConnection serverConnection = null; IMessageQueue<ExampleMessage> queue = null; IPersistenceQueueStorage<ExampleMessage> queueStorage = null; QueueDispatcher dispatcher = null; try { serverConnection = bus.create(new Uri("bnmq://127.0.0.1:3333")); serverConnection.addListener(new MQConnectionListener()); ISupplier supplier = serverConnection.createSupplier("ExampleSupplier"); Console.WriteLine("Supplier created successfully"); IDictionary<String,Object> storProps = new Dictionary<String,Object>(); storProps.Add("storageName","MyMemoryStorage"); // For InMemoryDB (It's not HSQLDB!) IPersistenceStorage< ExampleMessage > persistStorage = MQFactory.Instance.createPersistenceStorage<ExampleMessage>("InMemory",storProps); queueStorage = persistStorage.createQueueStorage("MyQueue"); Console.WriteLine("QueueStorage created successfully"); queue = supplier.createQueue<ExampleMessage>("myqueues/queue", queueStorage); Console.WriteLine("MessageQueue created successfully"); serverConnection.start(); Console.WriteLine("Listener created successfully"); dispatcher = new QueueDispatcher(queue); dispatcher.start(); Console.WriteLine("Example queue dispatcher started successfully"); Console.WriteLine("Please enter to exit"); Console.ReadKey(); Console.WriteLine("Trying to stop example queue dispatcher"); dispatcher.stop(); } catch (Exception e) { Console.WriteLine(e.ToString()); } finally { if (serverConnection != null) { Console.WriteLine("Trying to close listener"); serverConnection.close(); } if(queue!=null) { Console.WriteLine("Trying to stop queue"); queue.stop(); } if(queueStorage!=null) { Console.WriteLine("Trying to close queue storage"); queueStorage.close(); } if(bus!=null) { Console.WriteLine("Trying to finallize messaging bus"); bus.close(); } } }
private void Awake() { dispather = new QueueDispatcher <Actions>(); _userStore = new UserStore(dispather); }