Esempio n. 1
0
        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());
        }
Esempio n. 2
0
    //個人單筆發送訊息 沒用了
    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);
    }
Esempio n. 3
0
    //傳訊息
    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);
    }
Esempio n. 4
0
        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();
        }
Esempio n. 5
0
    //個人單筆接收訊息 沒用了
    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);
    }