Beispiel #1
0
    /// <summary>
    /// 获取队列中全部消息
    /// </summary>
    /// <param name="queueName">队列名称</param>
    /// <returns></returns>
    public static string GetAllMessage(string queueName)
    {
        string s = "", temp = "";

        try
        {
            using (MessageQueue mq = new MessageQueue(@".\private$\" + queueName))
            {
                mq.Formatter = new XmlMessageFormatter(new Type[] { typeof(string) });
                Message[] msg = mq.GetAllMessages();
                for (int i = 0; i < msg.Length; i++)
                {
                    temp = msg[i].Body.ToString();
                    if (s == "")
                    {
                        s = temp;
                    }
                    else
                    {
                        s = s + "|" + temp;
                    }
                }
            }
        }
        catch (Exception ex)
        {
            s = "";
            MQ.WriteDebugLog("获取消息失败:" + queueName, ex.Message);
        }
        return(s);
    }
Beispiel #2
0
    /// <summary>
    /// 发送消息
    /// </summary>
    /// <param name="queueName">写入队列名称</param>
    /// <param name="msgText">消息内容</param>
    /// <returns></returns>
    public static bool SendMessage(string queueName, string msgText)
    {
        bool b = false;

        try
        {
            if (!CheckQueue(queueName))
            {
                return(false);
            }
            using (MessageQueue mq = new MessageQueue(@".\private$\" + queueName))
            {
                Message msg = new Message();
                msg.Body      = msgText;
                msg.Formatter = new XmlMessageFormatter(new Type[] { typeof(string) });
                mq.Send(msg);
            }
            b = true;
        }
        catch (Exception ex)
        {
            MQ.WriteDebugLog("发送消息失败:" + queueName, "内容:" + msgText + ";错误:" + ex.Message);
        }
        return(b);
    }
Beispiel #3
0
        static void MetricWorker(Metric met)
        {
            string item = met.name.Split('.')[1];

            foreach (VM v in vm)
            {
                if (!v.state.HasFlag(VMSTATE.down))
                {
                    if (item == "process_list")
                    {
                        if (!v.state.HasFlag(VMSTATE.login))
                        {
                            v.Login("dongyf", "whu");
                        }
                        met.value = v.UpdateProcessList();
                    }
                    else
                    {
                        met.value = v.props[item];
                    }

                    met.tags.Clear();
                    met.tags["vm_path"] = v.path;
                    met.ts["latest"]    = Helper.to_timestamp(DateTime.Now);
                    MQ.publish(met.json_message);
                }
            }
        }
Beispiel #4
0
 /// <summary>
 /// 重组数据
 /// </summary>
 public void RebuildData()
 {
     while (true)
     {
         ReciveData data = null;
         try
         {
             if (MQ.TryDequeue(out data))
             {
                 if (!ProcessByte(data))
                 {
                     data.UserToken.Reset("CollectReceiveData 复原数据出错");
                 }
             }
             else
             {
                 Thread.Sleep(1);
                 if (IsClient)
                 {
                     lock (this)
                     {
                         Monitor.Wait(this);
                     }
                 }
             }
         }
         catch (Exception e)
         {
             if (data != null)
             {
                 data.UserToken.Reset("RebuildData:" + e.Message + e.StackTrace);
             }
         }
     }
 }
Beispiel #5
0
    /// <summary>
    /// 从队列中获取一条消息
    /// </summary>
    /// <param name="queueName">队列名称</param>
    /// <param name="bDel">是否从队列中删除消息</param>
    /// <returns></returns>
    public static string GetMessage(string queueName, bool bDel)
    {
        string s = "";

        try
        {
            using (MessageQueue mq = new MessageQueue(@".\private$\" + queueName))
            {
                mq.Formatter = new XmlMessageFormatter(new Type[] { typeof(string) });
                Message msg = new Message();
                if (bDel)
                {
                    msg = mq.Receive();
                }
                else
                {
                    msg = mq.Peek();
                }
                s = msg.Body.ToString();
            }
        }
        catch (Exception ex)
        {
            s = "";
            MQ.WriteDebugLog("获取消息失败:" + queueName, ex.Message);
        }
        return(s);
    }
    static void Main()
    {
        MQ app = new MQ();

        int[] nums = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };

        // QueryMethod1 returns a query as the value of the method.
        var myQuery1 = app.QueryMethod1(ref nums);

        // Query myQuery1 is executed in the following foreach loop.
        Console.WriteLine("Results of executing myQuery1:");
        // Rest the mouse pointer over myQuery1 to see its type.
        foreach (string s in myQuery1)
        {
            Console.WriteLine(s);
        }

        // You also can execute the query returned from QueryMethod1
        // directly, without using myQuery1.
        Console.WriteLine("\nResults of executing myQuery1 directly:");
        // Rest the mouse pointer over the call to QueryMethod1 to see its
        // return type.
        foreach (string s in app.QueryMethod1(ref nums))
        {
            Console.WriteLine(s);
        }


        IEnumerable <string> myQuery2;

        // QueryMethod2 returns a query as the value of its out parameter.
        app.QueryMethod2(ref nums, out myQuery2);

        // Execute the returned query.
        Console.WriteLine("\nResults of executing myQuery2:");
        foreach (string s in myQuery2)
        {
            Console.WriteLine(s);
        }


        // You can modify a query by using query composition. A saved query
        // is nested inside a new query definition that revises the results
        // of the first query.
        myQuery1 = from item in myQuery1
                   orderby item descending
                   select item;

        // Execute the modified query.
        Console.WriteLine("\nResults of executing modified myQuery1:");
        foreach (string s in myQuery1)
        {
            Console.WriteLine(s);
        }

        // Keep console window open in debug mode.
        Console.WriteLine("Press any key to exit.");
        Console.ReadKey();
    }
    static void Main()
    {
        MQ app = new MQ();

                    int[] nums = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };

                    // QueryMethod1 returns a query as the value of the method.
                    var myQuery1 = app.QueryMethod1(ref nums);

                    // Query myQuery1 is executed in the following foreach loop.
                    Console.WriteLine("Results of executing myQuery1:");
                    // Rest the mouse pointer over myQuery1 to see its type.
                    foreach (string s in myQuery1)
                    {
                        Console.WriteLine(s);
                    }

                    // You also can execute the query returned from QueryMethod1
                    // directly, without using myQuery1.
                    Console.WriteLine("\nResults of executing myQuery1 directly:");
                    // Rest the mouse pointer over the call to QueryMethod1 to see its
                    // return type.
                    foreach (string s in app.QueryMethod1(ref nums))
                    {
                        Console.WriteLine(s);
                    }

                    IEnumerable<string> myQuery2;
                    // QueryMethod2 returns a query as the value of its out parameter.
                    app.QueryMethod2(ref nums, out myQuery2);

                    // Execute the returned query.
                    Console.WriteLine("\nResults of executing myQuery2:");
                    foreach (string s in myQuery2)
                    {
                        Console.WriteLine(s);
                    }

                    // You can modify a query by using query composition. A saved query
                    // is nested inside a new query definition that revises the results
                    // of the first query.
                    myQuery1 = from item in myQuery1
                               orderby item descending
                               select item;

                    // Execute the modified query.
                    Console.WriteLine("\nResults of executing modified myQuery1:");
                    foreach (string s in myQuery1)
                    {
                        Console.WriteLine(s);
                    }

                    // Keep console window open in debug mode.
                    Console.WriteLine("Press any key to exit.");
                    Console.ReadKey();
    }
Beispiel #8
0
 /// <summary>
 /// Puts a message into the message queue
 /// </summary>
 /// <param name="o">Object to send</param>
 public void SendMessage(object o)
 {
     try
     {
         MQ.Send(o);
     }
     catch (Exception e)
     {
     }
 }
Beispiel #9
0
 //指令MQ初始化
 private void MQActivStart()
 {
     m_mq          = new MQ();
     m_mq.uri      = serverini.ReadValue("MQActiveOrder", "ServerUrl");;
     m_mq.username = serverini.ReadValue("MQActiveOrder", "User");;
     m_mq.password = serverini.ReadValue("MQActiveOrder", "Password");
     m_mq.Start();
     Thread.Sleep(500);
     m_mq.CreateProducer(true, "fee.bar");
 }
Beispiel #10
0
 public MqSendOrder()
 {
     m_mq          = new MQ();
     serverini     = new IniFiles(@Application.StartupPath + "\\Config.ini");
     m_mq          = new MQ();
     m_mq.uri      = serverini.ReadValue("MQActiveOrder", "ServerUrl");
     m_mq.username = serverini.ReadValue("MQActiveOrder", "User");
     m_mq.password = serverini.ReadValue("MQActiveOrder", "Password");
     m_mq.Start();
     Thread.Sleep(500);
     m_mq.CreateProducer(true, "fee.bar");
 }
Beispiel #11
0
 public void InvokeMessage()
 {
     while (true)
     {
         Thread.Sleep(1);
         ReciveData data = null;
         try
         {
             if (MQ.TryDequeue(out data))
             {
                 if (!data.UserToken.WsShakeHand)
                 {
                     var shakingKey = WebSocketConverter.GetSecKeyAccetp(data.Buffer, data.Actual);
                     if (!string.IsNullOrEmpty(shakingKey))
                     {
                         var buffer = WebSocketConverter.PackHandShakeData(shakingKey);
                         if (data.UserToken.Send(buffer))
                         {
                             data.UserToken.WsShakeHand = true;
                             Console.WriteLine("已经发送握手协议了....");
                         }
                     }
                     else
                     {
                         data.UserToken.Reset("无效的协议");
                     }
                 }
                 else
                 {
                     if (string.IsNullOrEmpty(data.UserToken.SessionId))
                     {
                         data.UserToken.SessionId = Guid.NewGuid().ToString("N");
                         ISessionAdd.AddSession(data.UserToken);
                         ISessionAdd.OnConnected(data.UserToken);
                     }
                     var(message, buffer) = WebSocketConverter.AnalyticData(data.Buffer, data.Actual);
                     data.Message         = message;
                     data.Buffer          = buffer;
                     data.Actual          = buffer.Length;
                     Process.Invoke(data);
                 }
             }
         }
         catch (Exception e)
         {
             if (data != null)
             {
                 data.UserToken.Reset("WsProcessor " + e.Message);
             }
         }
     }
 }
Beispiel #12
0
 /// <summary>
 /// 清空队列中的全部消息
 /// </summary>
 /// <param name="queueName">队列名称</param>
 public static void CleanMessage(string queueName)
 {
     try
     {
         using (MessageQueue mq = new MessageQueue(@".\private$\" + queueName))
         {
             mq.Purge();
         }
     }
     catch (Exception ex)
     {
         MQ.WriteDebugLog("清空队列消息失败:" + queueName, ex.Message);
     }
 }
Beispiel #13
0
 //指令MQ初始化
 private void MQActivStart()
 {
     m_mq          = new MQ();
     m_mq.uri      = serverini.ReadValue("MQActiveOrder", "ServerUrl");;
     m_mq.username = serverini.ReadValue("MQActiveOrder", "User");;
     m_mq.password = serverini.ReadValue("MQActiveOrder", "Password");
     m_mq.Start();
     Thread.Sleep(500);
     m_mq.CreateProducer(true, "fee.bar");
     //Property ite = new Property();
     //ite.name = "你是猪吗?";
     //ite.value = "这个都不会";
     //m_lstProperty.Add(ite);
     //m_mq.SendMQMessage(true, "Send", m_lstProperty);
 }
        //ADD MQ и переделать connection
        private void ReadConfig(IConfiguration configuration)
        {
            //    Starter = new CfgStarterSection();
            //    configuration.GetSection("starter").Bind(Starter, options => options.BindNonPublicProperties = true);
            //    Starter.ValidateAndTrace("starter");

            //    MQ = new CfgMqSection();
            //    configuration.GetSection("mq").Bind(MQ);
            //    Starter.ValidateAndTrace("mq");

            Ru = new CfgRuSection();
            configuration.GetSection("ru").Bind(Ru, options => options.BindNonPublicProperties = true);

            Starter?.ValidateAndTrace("starter");
            MQ?.ValidateAndTrace("mq");
            Ru.ValidateAndTrace("ru");
        }
Beispiel #15
0
        static void Main(string[] args)
        {
            vix = new VixLibClass();

            Helper.plugin_info("VixPlugin.json");
            MQ.setup_local_queue();

            // connect to host
            host = (IHost)WaitJob(vix.Connect(Constants.VIX_API_VERSION, Constants.VIX_SERVICEPROVIDER_VMWARE_WORKSTATION,
                                              null, 0, null, null, 0, null, null));

            bool flag = true;

            while (flag)
            {
                foreach (VM vv in vm)
                {
                    vv.state |= VMSTATE.down;
                }
                // update vm list
                WaitJob(host.FindItems(Constants.VIX_FIND_RUNNING_VMS, null, -1, new SearchCallback()), false);

                foreach (VM vv in vm)
                {
                    if (vv.state == VMSTATE.init)
                    {
                        Debug.Print("new vm {0}", vv.path);
                        vv.handle = (IVixHandle)WaitJob(host.OpenVM(vv.path, null));
                        vv.state  = VMSTATE.run;
                    }
                }

                Helper.update_metrics(MetricWorker, false);
                System.Threading.Thread.Sleep(2000);
            }
            // disconn
            host.Disconnect();

            Debug.WriteLine("Done.");
            Console.ReadKey();
        }
        public void ProcessStart(string refNum)
        {
            try
            {
                while (ReadQueueSize(refNum) > 0)
                {
                    if (MessageQueue.Exists(@".\Private$\ScrapeSessionsQueue"))
                    {
                        MQ = new System.Messaging.MessageQueue(@".\Private$\ScrapeSessionsQueue");
                        MQ.SetPermissions("Everyone", MessageQueueAccessRights.FullControl, AccessControlEntryType.Allow);

                        if (MQ != null)
                        {
                            Message processMessage = MQ.Receive(new TimeSpan(0, 0, 0, 0, 10));

                            processMessage.Formatter = new XmlMessageFormatter(new Type[] { typeof(ScrapeSession) });
                            ScrapeSession _scrapeSession = (ScrapeSession)processMessage.Body;

                            // Call the scraper
                        }
                    }
                    else
                    {
                        log.LogMessage(Enumeration.LoggingPriority.Low, refNum, "Create new Que");

                        MQ = MessageQueue.Create(@".\Private$\ScrapeSessionsQueue");
                        MQ.SetPermissions("Everyone", MessageQueueAccessRights.FullControl, AccessControlEntryType.Allow);
                    }
                }
            }
            catch (MessageQueueException mqEx)
            {
                log.LogMessage(Enumeration.LoggingPriority.High, refNum, mqEx);
            }
            catch (Exception ex)
            {
                log.LogMessage(Enumeration.LoggingPriority.High, refNum, ex);
            }
        }
Beispiel #17
0
    /// <summary>
    /// 检查队列是否存在, 不存在则创建
    /// </summary>
    /// <param name="queueName"></param>
    /// <returns></returns>
    public static bool CheckQueue(string queueName)
    {
        bool b = true;

        try
        {
            if (queueName == "")
            {
                queueName = "Default";
            }
            if (!MessageQueue.Exists(@".\private$\" + queueName))
            {
                MessageQueue.Create(@".\private$\" + queueName);
            }
        }
        catch (Exception ex)
        {
            b = false;
            MQ.WriteDebugLog("创建消息队列路径失败:" + queueName, ex.Message);
        }
        return(b);
    }
        public void AddQProcess(string refNum)
        {
            try
            {
                if (MessageQueue.Exists(@".\Private$\ScrapeSessionsQueue"))
                {
                    MQ = new System.Messaging.MessageQueue(@".\Private$\ScrapeSessionsQueue");
                    MQ.SetPermissions("Everyone", MessageQueueAccessRights.FullControl, AccessControlEntryType.Allow);
                }
                else
                {
                    log.LogMessage(Enumeration.LoggingPriority.Low, refNum, "Creating MS message queue with name: " + @".\Private$\ScrapeSessionsQueue");

                    MQ = MessageQueue.Create(@".\Private$\ScrapeSessionsQueue");
                    MQ.SetPermissions("Everyone", MessageQueueAccessRights.FullControl, AccessControlEntryType.Allow);
                }

                ScrapeSession session = new ScrapeSession
                {
                    AccountPassword = scrapeSession.AccountPassword,
                    AccountUsername = scrapeSession.AccountUsername,
                    ReferenceNumber = refNum,
                    Rules           = scrapeSession.Rules,
                    ScrapeURL       = scrapeSession.ScrapeURL
                };

                MQ.Send(session);
            }
            catch (MessageQueueException mqEx)
            {
                log.LogMessage(Enumeration.LoggingPriority.High, refNum, mqEx);
            }
            catch (Exception ex)
            {
                log.LogMessage(Enumeration.LoggingPriority.High, refNum, ex);
            }
        }
Beispiel #19
0
        static void Main(string[] args)
        {
            var data = Post.Request("http://172.31.226.153:8001/Disbursement/GetPageForManage", "{page_index:1,page_size:20,target_account_type:99}");
            //var d = Omipay.Core.Post.Request("http://172.18.8.39:8001/merchantaccount/GetAccountByCurrency", "{merchant_id:3584966748442460160,currency_id:1}", ContentType.Json, null, null, null, null);

            var source = "Server=172.18.8.42;Database=omipay_account;Uid=omipay;Pwd=pGB8XRIE1PXGkrjRqWKog;max pool size=512;port=3307";
            //wHZBwT8mo5ymNKjgYrJ8h2xs+1Zjm11Y9P2tgNZBS8yf+sjYOTWMUl/xuWogmsmnHThVNLbYq/nW8W8KoQ/NbPUXRZ908V42VqeCHh2A/8I++NoPsxocmJOqU4yY39BJ
            //wHZBwT8mo5ymNKjgYrJ8h2xs+1Zjm11Y9P2tgNZBS8yf+sjYOTWMUl/xuWogmsmnHThVNLbYq/nW8W8KoQ/NbPUXRZ908V42VqeCHh2A/8I++NoPsxocmJOqU4yY39BJ
            var encryptSource    = Core.Encrypt.AESEncrypt.Encrypt("wHZBwT8mo5ymNKjgYrJ8h2xs+1Zjm11Y9P2tgNZBS8yf+sjYOTWMUl/xuWogmsmnHThVNLbYq/nW8W8KoQ/NbPUXRZ908V42VqeCHh2A/8I++NoPsxocmJOqU4yY39BJ", "a43a7de74b2049338dc52f14edf4b6f4", "2473bf104dd74196a931159b7fe520e7");
            var decryptionSource = Core.Encrypt.AESEncrypt.Decryption("wHZBwT8mo5ymNKjgYrJ8h2xs+1Zjm11Y9P2tgNZBS8yf+sjYOTWMUl/xuWogmsmnHThVNLbYq/nW8W8KoQ/NbPUXRZ908V42VqeCHh2A/8I++NoPsxocmJOqU4yY39BJ", "a43a7de74b2049338dc52f14edf4b6f4", "2473bf104dd74196a931159b7fe520e7");

            //var account =  Omipay.Core.Encrypt.AESEncrypt.Encrypt("Server=172.18.8.42;Database=omipay_account;Uid=root;Pwd=GB8XRIE1PXGkrjRqWKog", "a43a7de74b2049338dc52f14edf4b6f4", "2473bf104dd74196a931159b7fe520e7");
            //var merchant = Omipay.Core.Encrypt.AESEncrypt.Encrypt("Server=172.18.8.42;Database=omipay_merchant;Uid=root;Pwd=GB8XRIE1PXGkrjRqWKog", "a43a7de74b2049338dc52f14edf4b6f4", "2473bf104dd74196a931159b7fe520e7");
            //var payment = Omipay.Core.Encrypt.AESEncrypt.Encrypt("Server=172.18.8.42;Database=omipay_payment;Uid=root;Pwd=GB8XRIE1PXGkrjRqWKog", "a43a7de74b2049338dc52f14edf4b6f4", "2473bf104dd74196a931159b7fe520e7");
            //var common = Omipay.Core.Encrypt.AESEncrypt.Encrypt("Server=172.18.8.42;Database=omipay_common;Uid=root;Pwd=GB8XRIE1PXGkrjRqWKog", "a43a7de74b2049338dc52f14edf4b6f4", "2473bf104dd74196a931159b7fe520e7");
            //var risk  = Omipay.Core.Encrypt.AESEncrypt.Encrypt("Server=172.18.8.42;Database=omipay_riskmanage;Uid=root;Pwd=GB8XRIE1PXGkrjRqWKog", "a43a7de74b2049338dc52f14edf4b6f4", "2473bf104dd74196a931159b7fe520e7");
            //Console.Read();

            TestXmlConvert();
            TestSign();
            TestGetEnumDescription();
            TestToEnum();
            user user = new user()
            {
                id   = 1,
                name = "测试RabbitMQ"
            };

            MQ.SendMessage("user2", user);
            MQ.ListenQueue <TestUse>("user2").OnMessageRecieved += Test.Sync;
            messageQueue.SendMessage("jjjjjj", user);
            SqlConnection con = SqlHelper.GetConnection();

            Console.WriteLine("数据库连接成功");
            SqlParameter[] pms = new SqlParameter[]
            {
                new SqlParameter("@TableName", SqlDbType.VarChar, 50)
                {
                    Value = "merchant"
                },
                new SqlParameter("@ReFieldsStr", SqlDbType.VarChar, 200)
                {
                    Value = "*"
                },
                new SqlParameter("@OrderString", SqlDbType.VarChar, 200)
                {
                    Value = "id"
                },
                new SqlParameter("@WhereString", SqlDbType.VarChar, 500)
                {
                    Value = "industry_id=1 and payment_scene=99"
                },
                new SqlParameter("@PageSize", SqlDbType.Int)
                {
                    Value = 10
                },
                new SqlParameter("@PageIndex", SqlDbType.Int)
                {
                    Value = 1
                },
                new SqlParameter("@TotalRecord", SqlDbType.Int)
                {
                    Value = 0
                },
            };
            DataSet ds = SqlHelper.ExecuteDataset(con, CommandType.StoredProcedure, "merchant_page", pms);

            foreach (DataRow col in ds.Tables[0].Rows)
            {
                for (int i = 0; i < 3; i++)
                {
                    Console.WriteLine(col[i].ToString());
                }
            }
        }