Exemplo n.º 1
0
        public string ConvertToDoc([FromBody] ConvertTask task)
        {
            task.TaskType = "Doc";
            MqHelper.Publish(task);

            return(task.TaskId);
        }
Exemplo n.º 2
0
        public FMain()
        {
            InitializeComponent();

            //初始化消息队列
            MqHelper.InitGetMessage();
        }
Exemplo n.º 3
0
        public static void WebInit()
        {
            MqHelper.Subscribe();
            string path = Path.Combine(HttpContext.Current.Server.MapPath("~/App_Data"), "words");

            Directory.CreateDirectory(path);
        }
Exemplo n.º 4
0
        public string GetBestQueue()
        {
            using (var sqlconn = new SQLiteConnection(EnvironmentHelper.GetValue(DictionaryConstants.DatabaseConnectionString)))
            {
                sqlconn.Open();

                try
                {
                    //SELECT * FROM MachinesConsume WHERE
                    var sqlcom = new SQLiteCommand($"Select MIN(CpuUsage) CpuUsage, MachineName from MachinesConsume", sqlconn);

                    var    reader      = sqlcom.ExecuteReader();
                    string machineName = Environment.MachineName;
                    while (reader.Read())
                    {
                        machineName = reader.GetString(1);
                    }

                    return(MqHelper.OrchestratorQueueName(machineName));
                }
                finally
                {
                    sqlconn.Close();
                    sqlconn.Dispose();
                }
            }
        }
Exemplo n.º 5
0
        private static void Bot_OnMessage(object sender, global::Telegram.Bot.Args.MessageEventArgs e)
        {
            //Chamar API pra cadastrar o pedido
            {
                ChatMq chat;

                if (ActiveChats.ContainsKey(e.Message.Chat.Id))
                {
                    chat = ActiveChats[e.Message.Chat.Id];
                }
                else
                {
                    chat = new ChatMq()
                    {
                        ChatId = e.Message.Chat.Id, QueueName = MqHelper.GetQueueChatName(e.Message.Chat.Id)
                    };
                    ActiveChats.Add(e.Message.Chat.Id, chat);
                }

                Console.WriteLine($"Getting sender information:\n\tChatId: {chat.ChatId}\n\tLastUsedQueue: {chat.QueueName}\n\tLastAppUse: {chat.LastQuery}");

                chat.LastQuery = DateTime.Now;

                //Criando o conteudo para a Azure function
                var str = new StringContent(JsonConvert.SerializeObject(new { name = e.Message.Text, queue = chat.QueueName }), Encoding.Default, "application/json");

                //Cadastrar uma fila pra escutar até voltar as imagens
                mq.CreateQueue(chat.QueueName);
                mq.ConfigureConsumeQueueListener(chat.QueueName, false, sendResultSheets);

                //Chamando a Azure Function
                _client.PostAsync(TelegramConstants.OrquestradorGetSheetUrl, str).GetAwaiter().GetResult();
            }
        }
Exemplo n.º 6
0
        private readonly List <RunningCrawler> runningCrawlers = new List <RunningCrawler>(); //Buscar do banco caso morra

        public Worker(ILogger <Worker> logger, IMessageQueueConnection mq, IDatabase db)
        {
            _logger = logger;
            _mq     = mq;
            _db     = db;

            _mq.CreateQueue(MqHelper.OrchestratorQueueName());
            _mq.ConfigureConsumeQueueListener(MqHelper.OrchestratorQueueName(), true, CreateCrawler);
        }
Exemplo n.º 7
0
        /// <summary>
        /// 添加到队列
        /// </summary>
        public static void AddQueue(User user)
        {
            //创建一个channel
            using (var channel = MqHelper.GetNewConnection().CreateModel())
            {
                //json序列化
                var bytes = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(user));

                channel.BasicPublish(String.Empty, QueueName, null, bytes);
            }
        }
Exemplo n.º 8
0
        static void Main(string[] args)
        {
            using (var channel = MqHelper.GetConnection().CreateModel()) // 创建通道
            {
                //定义队列
                channel.QueueDeclare(queue: "NET", durable: true, exclusive: false, autoDelete: false, arguments: null);
                //公平分配(在处理并确认前一条消息之前,不要向队列发送新消息)
                channel.BasicQos(prefetchSize: 0, prefetchCount: 1, global: false);
                //事件基本消费者
                var consumber = new EventingBasicConsumer(channel);

                consumber.Received += (sender, e) =>
                {
                    try
                    {
                        var user = JsonConvert.DeserializeObject <User>(Encoding.UTF8.GetString(e.Body));
                        //Incr
                        var database = RedisManager.Instance.GetDatabase();
                        var flag     = database.StringIncrement(user.Id.ToString());


                        if (flag == 1)
                        {
                            //用户的第一次请求,为有效请求
                            //下面开始入库,这里使用List做为模拟
                            Console.WriteLine($"{user.Id}标识为{flag} {user.Name}");

                            DapperHelper.Insert(new Person()
                            {
                                Id2 = user.Id.ToString(), Name = user.Name
                            });

                            //添加入库标识
                            database.StringIncrement($"{user.Id.ToString()}入库");

                            Console.WriteLine("入库成功");
                        }

                        //用户的N次请求,为无效请求,消息被消费
                        channel.BasicAck(e.DeliveryTag, false);
                    }

                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message);
                    }
                };

                Console.WriteLine("开始工作");
                //启动消费者 设置为手动应答消息
                channel.BasicConsume("NET", false, consumber);
                Console.ReadKey();
            }
        }
Exemplo n.º 9
0
        /// <summary>
        /// 消费队列
        /// </summary>
        public static void ConsumeQueue()
        {
            using (var channel = MqHelper.GetConnection().CreateModel())
            {
                channel.QueueDeclare("NET", true, false, false, null);

                var consumber = new EventingBasicConsumer(channel);
                channel.BasicQos(0, 1, false);


                consumber.Received += (sender, e) =>
                {
                    try
                    {
                        var user = JsonConvert.DeserializeObject <User>(Encoding.UTF8.GetString(e.Body));
                        var flag = RedisHelper.GetRedisClient().Incr(user.Id.ToString());
                        if (flag == 1)
                        {
                            //File.AppendAllText($"{System.AppDomain.CurrentDomain.BaseDirectory}/bin/info.txt", $"有效!{user.Id}的标识为{flag},姓名为{user.Name}\r\n");
                            //用户的第一次请求,为有效请求
                            //下面开始入库,这里使用List做为模拟
                            var dbContext = Model1.GetDbContext();
                            dbContext.Person.Add(new Person()
                            {
                                Id2 = user.Id.ToString(), Name = user.Name
                            });
                            Task ts = dbContext.SaveChangesAsync();
                            ts.Wait();
                            //添加入库标识
                            RedisHelper.GetRedisClient().Incr($"{user.Id.ToString()}入库");
                        }
                        //else
                        // File.AppendAllText($"{System.AppDomain.CurrentDomain.BaseDirectory}/bin/info.txt", $"无效!{user.Id}的标识为{flag},姓名为{user.Name}\r\n");

                        //用户的N次请求,为无效请求
                        channel.BasicAck(e.DeliveryTag, false);
                    }
                    catch (Exception ex)
                    {
                        File.AppendAllText($"{System.AppDomain.CurrentDomain.BaseDirectory}/bin/log.txt", ex.Message);
                    }
                };

                channel.BasicConsume("NET", false, consumber);
                //停在这里
                while (true)
                {
                }
            }
            // ReSharper disable once FunctionNeverReturns
        }
Exemplo n.º 10
0
        static void Main(string[] args)
        {
            try
            {
                Console.WriteLine($"IKVM.NET MQ Client: {MqHelper.GetMqClientLevel()}");

                // Queue Demo
                var connection   = "localhost";
                var queueManager = "QM1";
                var channel      = "DEV.ADMIN.SVRCONN";
                var port         = 1414;

                var qMgr = new MqQueueManager(connection, queueManager, channel, port);

                qMgr.Create("QL.Q1.AUTO_DEMO1");
                qMgr.Create("Q1.AUTO_DEMO1", "QL.Q1.AUTO_DEMO1", "CLUSTER1");

                var qResult = qMgr.Inquire("QL.Q1.AUTO");
                foreach (var q in qResult)
                {
                    Console.WriteLine($"Name: {q.Name} - BaseObject: {q.BaseObject} - ClusterName: {q.ClusterName}");
                }

                //qMgr.Delete("Q1.AUTO_DEMO1");
                //qMgr.Delete("QL.Q1.AUTO_DEMO1");

                // Subscription Demo
                var connection2   = "localhost";
                var queueManager2 = "QM1";

                var sMgr = new MqSubscriptionManager(connection2, queueManager2, channel, port);

                sMgr.Create("SUB.AUTODEMO", "/SU/AUTO_DEMO", "Q1.AUTO_DEMO1");

                var sResult = sMgr.Inquire("SUB.AUTODEMO");
                foreach (var sub in sResult)
                {
                    Console.WriteLine(sub.Name);
                }

                //sMgr.Delete("SUB.AUTODEMO");
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }

            Console.WriteLine("Press any key to exit");
            Console.ReadKey();
        }
Exemplo n.º 11
0
        static void Main(string[] args)
        {
            using (var channel = MqHelper.GetConnection().CreateModel())
            {
                channel.QueueDeclare("NET", true, false, false, null);

                var consumber = new EventingBasicConsumer(channel);
                channel.BasicQos(0, 1, false);


                consumber.Received += (sender, e) =>
                {
                    try
                    {
                        var user = JsonConvert.DeserializeObject <User>(Encoding.UTF8.GetString(e.Body));
                        var flag = RedisHelper.GetRedisClient().Incr(user.Id.ToString());
                        if (flag == 1)
                        {
                            //用户的第一次请求,为有效请求
                            //下面开始入库,这里使用List做为模拟
                            Console.WriteLine($"{user.Id}标识为{flag} {user.Name}");
                            var dbContext = new Model1();
                            dbContext.Person.Add(new Person()
                            {
                                Id2 = user.Id.ToString(), Name = user.Name
                            });
                            Task ts = dbContext.SaveChangesAsync();
                            ts.Wait();
                            //添加入库标识
                            RedisHelper.GetRedisClient().Incr($"{user.Id.ToString()}入库");

                            Console.WriteLine("入库成功");
                        }

                        //用户的N次请求,为无效请求
                        channel.BasicAck(e.DeliveryTag, false);
                    }
                    catch (Exception ex)
                    {
                        File.AppendAllText($"{System.AppDomain.CurrentDomain.BaseDirectory}/bin/log.txt", ex.Message);
                    }
                };
                Console.WriteLine("开始工作");

                channel.BasicConsume("NET", false, consumber);
                Console.ReadKey();
            }
        }
Exemplo n.º 12
0
 public void SummaryTest()
 {
     using (var helper = new MqHelper("SinxTest", "wDuuwhy2ibIX4l9l", "roBHfibj5L2om2dsx0OhpASof3RUA1"))
     {
         // ---------------- 发送 ---------------
         var r = helper.SendAsync("tag", "key", "body").Result;
         Assert.True(r);
         // ---------------- 接收 ---------------
         var mqMessageList = helper.GetAsync().Result;
         Assert.True(mqMessageList.Any(m => m.ReconsumeTimes == 0));                 // 队列中可定有一个我新添加的, 第一次消费的
         Debug.WriteLine(mqMessageList.Count());
         // ---------------- 删除 ---------------
         var tasks   = mqMessageList.Select(m => helper.DeleteAsync(m.MsgHandle));
         var results = Task.WhenAll(tasks).Result;
         Assert.True(results.All(b => b));                   // 删除了所有查出来的消息
     }
 }
Exemplo n.º 13
0
 /// <summary>
 /// 初始化
 /// </summary>
 /// <param name="redisHelper">redis</param>
 /// <param name="wxHelper">微信helper</param>
 /// <param name="unitOfWorkManager">abp自定义事务</param>
 /// <param name="crmAptMstrRepository">预约仓储</param>
 /// <param name="mdmBuMstrRepository">机构仓储</param>
 /// <param name="sysUsrWctRepository">粉丝仓储</param>
 /// <param name="sysUsrMstrRepository">用户仓储</param>
 /// <param name="smsHelper">短信helper</param>
 /// <param name="configuration">配置</param>
 /// <param name="mqHelper">mqHelper</param>
 public AptJob(RedisHelper redisHelper, WxHelper wxHelper,
               IUnitOfWorkManager unitOfWorkManager, ICrmAptMstrRepository crmAptMstrRepository,
               IMdmBuMstrRepository mdmBuMstrRepository, ISysUsrWctRepository sysUsrWctRepository,
               ISysUsrMstrRepository sysUsrMstrRepository, SmsHelper smsHelper,
               IConfiguration configuration, MqHelper mqHelper)
 {
     _redisHelper          = redisHelper;
     _wxHelper             = wxHelper;
     _unitOfWorkManager    = unitOfWorkManager;
     _crmAptMstrRepository = crmAptMstrRepository;
     _mdmBuMstrRepository  = mdmBuMstrRepository;
     _sysUsrWctRepository  = sysUsrWctRepository;
     _sysUsrMstrRepository = sysUsrMstrRepository;
     _smsHelper            = smsHelper;
     _configuration        = configuration;
     _mqHelper             = mqHelper;
 }
Exemplo n.º 14
0
        static void Main(string[] args)
        {
            int    MaterialUnit = Int32.Parse("0.51267");
            string str          = "{'key':'123456789'}";
            Type   type         = typeof(Program);
            Type   tp           = JsonConvert.DeserializeObject <Type>(str);


            Action <int> act = (Action <int>)Delegate.CreateDelegate(typeof(Action <int>), type.GetMethod("TestMethod"));

            act(10);

            MqHelper.SendMessage("TestMq", "test", "f**k denglu");
            Message message = MqHelper.ReceiveMessage("TestMq");

            Console.WriteLine(message.Body);
            Console.ReadLine();
        }
Exemplo n.º 15
0
 /// <summary>
 /// 操作成功后记录用户行为
 /// </summary>
 /// <param name="filterContext"></param>
 public override void OnActionExecuted(ActionExecutedContext filterContext)
 {
     try
     {
         base.OnActionExecuted(filterContext);
         ActionResult result = filterContext.Result;
         if (IsActionResultSuccess(result))
         {
             ActionResultExcuteFactory factory = new ActionResultExcuteFactory(this._operationOption, this._actionParams);
             this._operation = factory.GetUserOperation();
             MqHelper.Send(MqHelper.ARTICLE_STATISTICS_QUEUE, new Dictionary <string, object>()
             {
                 { "Operation", _operation.Operation },
                 { "ArticleId", _operation.ArticleId }
             });
             //ArticleBll.InsertUserOperation(this._operation).ConfigureAwait(false);
         }
     }
     catch (Exception ex)
     {
         WebLog.LogException(ex);
     }
 }
Exemplo n.º 16
0
        public void Run([TimerTrigger("0 */10 * * * *")] TimerInfo myTimer, ILogger log)
        {
            var scheduledSearches = _database.GetSheetsToSearch();

            Parallel.ForEach(scheduledSearches, search =>
            {
                //Chamar API pra cadastrar o pedido
                using (var client = new HttpClient())
                {
                    string queueName = MqHelper.GetQueueChatName(search.ChatId);

                    //Criando o conteudo para a Azure function
                    var str = new StringContent(JsonConvert.SerializeObject(new { name = search.Term, queue = queueName }), Encoding.Default, "application/json");

                    //Cadastrar uma fila pra escutar até voltar as imagens
                    _mq.CreateQueue(queueName);

                    //Chamando a Azure Function
                    client.PostAsync(EnvironmentHelper.GetValue(DictionaryConstants.OrquestradorGetSheetUrl), str).GetAwaiter().GetResult();
                }
            });

            log.LogInformation($"Scheduler runned at '{DateTime.Now}'");
        }