/// <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); }
/// <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); }
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); } } }
/// <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); } } } }
/// <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(); }
/// <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) { } }
//指令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"); }
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"); }
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); } } } }
/// <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); } }
//指令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"); }
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); } }
/// <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); } }
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()); } } }