コード例 #1
0
 private void Responses_QueueChanged(object sender, QueueChangedEventArgs <string> e)
 {
     try
     {
         if (e.Changed != QueueChangedEventArgs <string> .Change.Enqueued)
         {
             return;
         }
         if (e.Item.ToLower().Contains("arclsendtext"))
         {
             return;
         }
         if (e.Item.ToLower().Contains("alita"))
         {
             Application.Current.Dispatcher.Invoke(() =>
             {
                 var prikaz = RobotPrikaz.GetRobotPrikaz(e.Item);
                 ZarizeniZasilaPrikaz?.Invoke(this, prikaz);
             });
         }
     }
     catch (Exception exception)
     {
         string s = exception.Data.ToString();
     }
 }
コード例 #2
0
        private void queue_ContentChanged(object sender, QueueChangedEventArgs <QueueModel> args)
        {
            if (args.Action == QueueChangedActionEnum.Enqueue)
            {
                pool.QueueWorkItem(() =>
                {
                    try
                    {
                        QueueModel qm;
                        if (queue.Dequeue(out qm))
                        {
                            var result = NodeVisitor.Cooperater.GetResult(qm.Url);
                            if (result != null)
                            {
                                var cm    = new ContentModel();
                                cm.FeedId = qm.FeedId;
                                cm.Url    = qm.Url;
                                cm.Metas  = result.Metas;
                                cm.CDate  = DateTime.Now;

                                var connectString = string.Format(@"LiteDb/Content/{0}.db", DateTime.Now.ToString("yyyyMM"));
                                var storage       = new LiteDbStorage(connectString, "contents");
                                if (storage.Insert(cm) == -1)
                                {
                                    File.AppendAllText(path + @"\" + EncryptHelper.GetMD5Hash(qm.Url) + ".json", JsonConvert.SerializeObject(cm));
                                }
                            }
                        }
                    }
                    catch {
                        //save failed
                    }
                });
            }
        }
コード例 #3
0
 /// <summary>
 /// Handles newly enqueued <see cref="DatabaseAction{T}"/>s.
 /// </summary>
 private void OnActionEnqueued(object sender, QueueChangedEventArgs <DatabaseAction <T> > e)
 {
     if (ItemEnqueued != null)
     {
         ItemEnqueued(this, e.Data);
     }
     try
     {
         Flush(false);
     }
     catch (DatabaseException ex)
     {
         Log.Error("[Database] Failed to flush", ex);
     }
 }
コード例 #4
0
ファイル: ContentQueue.cs プロジェクト: xiangsxuan/RuiJi.Net
 private void queue_ContentChanged(object sender, QueueChangedEventArgs <string> args)
 {
     if (args.Action == QueueChangedActionEnum.Enqueue)
     {
         pool.QueueWorkItem(() =>
         {
             try
             {
                 string url;
                 if (queue.TryDequeue(out url))
                 {
                     var article = Extract(url);
                     if (article != null)
                     {
                         Save(article);
                     }
                 }
             }
             catch { }
         });
     }
 }
コード例 #5
0
 static void Queue_ItemDequeued(object sender, QueueChangedEventArgs <string> e)
 {
     _handle.Set();
 }
コード例 #6
0
 static void Queue_ItemDequeued(object sender, QueueChangedEventArgs<string> e)
 {
   _handle.Set();
 }