public static void Run2() { var bus = RabbitHutch.CreateBus("host=localhost;username=guest;password=guest;persistentMessages=true"); var publisherTask = Task.Run(() => { Enumerable.Range(1, 10000).ToList().ForEach(i => { if (i % 1000 == 0) { Console.WriteLine($"publishing {i}"); } var message = new WorkMessage(i); bus.Publish(message); }); }); //publisherTask.Wait(); var tasks = Enumerable.Range(1, 10).Select(i => Task.Run(() => { using (var subscriptionResult = bus.SubscribeAsync <WorkMessage>($"sub{i}", w => Task.Run(() => { if (w.Id % 1000 == 0) { Console.WriteLine($"receiving: {DateTime.Now.ToShortTimeString()}-{w.Id}"); } }))) { Task.Delay(TimeSpan.FromMinutes(1)).Wait(); } })); Task.WaitAll(tasks.ToArray()); }
//個人單筆發送訊息 沒用了 public static WorkMessage GetPersonalSendMessageDetail(int mid) { DBEntities db = new DBEntities(); //取得員工全名 //加入顯示姓名 WorkMessage Result = db.WorkMessages.SingleOrDefault(result => result.MessageID == mid); Employee who = db.Employees.SingleOrDefault(emp => emp.EmployeeID == Result.RecipientEID); Result.Note1 = who.DepartmentName + "," + who.LastName + who.FirstName; Result.Note3 = who.ImageFileName; return(Result); }
//傳訊息 public static bool SendMsg(WorkMessage W) { DBEntities db = new DBEntities(); Employee Sender = db.Employees.SingleOrDefault(re => re.EmployeeID == W.SenderEID); Employee Recipient = db.Employees.SingleOrDefault(re => re.EmployeeID == W.RecipientEID); bool OK = false; W.SenderDID = Sender.DepartmentID; W.RecipientDID = Recipient.DepartmentID; db.WorkMessages.Add(W); db.SaveChanges(); OK = true; return(OK); }
private void PublishMessage(int i, IModel channel) { if (i % 1000 == 0) { Console.WriteLine($"published {i}"); } var data = new WorkMessage(i); channel.BasicPublish(exchange: "testexchange", routingKey: "", basicProperties: null, body: serializer.Serialize(data)); Task.Delay(10).Wait(); }
//個人單筆接收訊息 沒用了 public static WorkMessage GetPersonalReceiveMessageDetail(int mid) { DBEntities db = new DBEntities(); //取得員工全名 //加入顯示姓名 WorkMessage Result = db.WorkMessages.SingleOrDefault(result => result.MessageID == mid); Result.HaveRead = "已讀"; db.Entry(Result).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); WorkMessage Result1 = db.WorkMessages.SingleOrDefault(result => result.MessageID == mid); Employee who = db.Employees.SingleOrDefault(emp => emp.EmployeeID == Result1.SenderEID); Result1.Note1 = who.DepartmentName + "," + who.LastName + who.FirstName; Result1.Note3 = who.ImageFileName; return(Result1); }