Ejemplo n.º 1
0
        private void QuartzGuidForach(object quartzParam)
        {
            if (this.InvokeRequired)
            {//是否通过其他形式调用
                DelegateData.BaseDelegate bd = new DelegateData.BaseDelegate(QuartzGuidForach);
                this.Invoke(bd, quartzParam);
                return;
            }
            LoggerWriter.CreateLogFile(Cookie, (new QQDataDA().GeneratePathTimeSpan(Cookie)), ELogType.SessionOrCookieLog);
            QueryQQParam param = GetBaseQueryParam();
            QQDataDA     da    = new QQDataDA();

            da.QueryParam = param;
            PickUpQQDoResponse response = da.QueryQQData(Cookie);
            // QueryTodayPickUp();
            //为下一次产生随机参数
            Guid   gid = Guid.NewGuid();
            Random ran = new Random(gid.GetHashCode());
            //所在城市联动
            int szd   = ran.Next(0, 8);
            int ps    = cmbProvince.Items.Count;
            int guidP = ran.Next(0, ps);

            cmbProvince.SelectedIndex = guidP;
            QuartzCallBack(response);
        }
Ejemplo n.º 2
0
 private void IntervalDisplay(object quartzParam)
 {
     if (this.InvokeRequired)
     {
         DelegateData.BaseDelegate bd = new DelegateData.BaseDelegate(IntervalDisplay);
         this.Invoke(bd, quartzParam);
         return;
     }
     else
     {
     }
 }
Ejemplo n.º 3
0
        private void SyncGetCityData(object data)
        {
            if (this.InvokeRequired)
            {
                DelegateData.BaseDelegate bd = new DelegateData.BaseDelegate(SyncGetCityData);
                this.Invoke(bd, data);
                return;
            }
            List <CategoryData> list = data as List <CategoryData>;

            targetCountry = list.Where(c => c.Code == "1" && c.ParentCode == null).FirstOrDefault();//目标国家数据
            cityList.AddRange(list.Where(c => c.ParentId == targetCountry.Id).OrderBy(s => s.Name).ToArray());
            Init();
        }
Ejemplo n.º 4
0
        public void Execute(IJobExecutionContext context)
        {
            JobDataMap data     = context.JobDetail.JobDataMap;
            object     objParam = data.Get(QuartzJob.QuartzParam);//提取委托及对应的参数

            object[] ps = objParam as object[];
            if (ps.Length == 0)
            {//没有传递参数
                return;
            }
            DelegateData.BaseDelegate bd = ps[0] as DelegateData.BaseDelegate;
            object obj = ps.Length >= 2 ? ps[1] : null;

            bd(obj);
        }
Ejemplo n.º 5
0
        public QQDataDA(object param)
        {
            object[] ps     = (object[])param;
            string   cookie = ps[0] as string;

            QueryParam = ps[1] as QueryQQParam;
            if (ps.Length > 2)
            {
                callback = ps[2] as DelegateData.BaseDelegate;
            }
            if (!string.IsNullOrEmpty(cookie))
            {
                QueryTecentQQData(cookie);
            }
        }
Ejemplo n.º 6
0
        void InitDownload(int lastSize)
        {
            //图片下载轮询方式进行更改
            //首先进行库遍历【1 查到数据之后 库轮询,没查到数据则job作业轮询直到查询到数据】
            QuartzJob job = new QuartzJob();

            if (lastSize != 0)
            {
                job.DeleteJob <JobDelegateFunction>();
                lastSize = DownLoadImageSize();
            }
            else
            {
                DelegateData.BaseDelegate del = QuartRun;
                job.CreateJobWithParam <JobDelegateFunction>(new object[] { del, lastSize }, DateTime.Now, 60, 0);
            }
        }
Ejemplo n.º 7
0
        private void QuartzCallBack(object data)
        {
            if (rtbTip.InvokeRequired)
            {//其他进程调度
                DelegateData.BaseDelegate bd = new DelegateData.BaseDelegate(QuartzCallBack);
                this.Invoke(bd, data);
                return;
            }
            PickUpQQDoResponse res = data as PickUpQQDoResponse;

            if (res == null)
            {
                return;
            }                           // 1 no cookie
            //如果此时检测返回集合为空,但是返回状态码不是错误,需要更改检测条件【腾讯防攻击检测】
            QueryResponseAction(res);
            if (!SystemConfig.OpenAutoQuertyDBTotal)
            {
                SyncUinStatics();
            }
        }
Ejemplo n.º 8
0
        private void QuartzForeachPage(object data)
        {
            if (this.InvokeRequired)
            {//是否通过其他形式调用
                DelegateData.BaseDelegate bd = new DelegateData.BaseDelegate(QuartzForeachPage);
                this.Invoke(bd, data);
                return;
            }
            QueryQQParam param = GetBaseQueryParam();
            int          page  = currentIndex + 1;

            param.page = page;
            QQDataDA da = new QQDataDA();

            da.QueryParam = param;
            PickUpQQDoResponse response = da.QueryQQData(Cookie);

            if (response == null)
            {
                rtbTip.Text = "No Cookie";
                return;
            }
            FindQQResponse resp = response.responseData;

            if (resp != null && resp.retcode == 0 && resp.result.buddy.totalnum > param.num)
            {
                txtPageIndex.Text = (page + 1).ToString();
            }
            else
            {
                page = 1;
                txtPageIndex.Text = page.ToString();
            }
            QueryResponseAction(response);
            if (!SystemConfig.OpenAutoQuertyDBTotal)
            {
                SyncUinStatics();
            }
        }
Ejemplo n.º 9
0
 private void QueryTodayPickUp(object data)
 {
     try
     {
         if (this.InvokeRequired)
         {
             DelegateData.BaseDelegate bd = new DelegateData.BaseDelegate(QueryTodayPickUp);
             this.Invoke(bd, data);
             return;
         }
         PickUpStatic pc = data as PickUpStatic;
         lsbStatic.Items.Clear();
         lsbStatic.Items.Add("时间戳" + DateTime.Now.ToString());
         lsbStatic.Items.Add("库\t" + pc.DBTotal);
         lsbStatic.Items.Add("库唯一\t" + pc.DBPrimaryTotal);
         lsbStatic.Items.Add("日期\t" + pc.StaticDay);
         lsbStatic.Items.Add("今日总计\t" + pc.Total);
         lsbStatic.Items.Add("今日QQ号\t" + pc.IdTotal);
     }
     catch (Exception ex)
     {
         LogHelperExt.WriteLog("Query pick up number\r\n" + ex.Message);
     }
 }
Ejemplo n.º 10
0
        private void btnQuery_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(Cookie))
            {
                rtbTip.Text = "please  login,and get cookie,and continue";
                return;
            }
            //
            int    interval = 0;
            string inter    = txtTimeSpan.Text;

            int.TryParse(inter, out interval);
            if (interval > 0)
            {
                intervalSec = interval;
            }
            else
            {
                interval = intervalSec;
            }
            int    repeact = 0;
            string rep     = txtRepeact.Text;

            int.TryParse(rep, out repeact);
            QQDataDA das  = new QQDataDA();
            string   path = LogPrepare.GetLogPath();

            LoggerWriter.CreateLogFile(Cookie, das.GeneratePathTimeSpan(Cookie), ELogType.SessionOrCookieLog);
            Uin = das.GetUinFromCookie(Cookie);//当前登录的账户
            //useralias  这是提取账户名称的元素
            QueryQQParam             param = GetBaseQueryParam();
            ParameterizedThreadStart pth;

            if (!ckStartQuartz.Checked)
            {//不进行轮询
                JustQuery(param);
            }
            else if (!ckBackGroundCall.Checked)
            {
                #region 进行的是quartz.net轮询调度
                if (ckStartQuartz.Checked && rbGuid.Checked)
                {//开启随机轮询
                    DelegateData.BaseDelegate del = QuartzGuidForach;
                    QuartzJobParam            p   = new QuartzJobParam()
                    {
                        JobExecutionContextJobDataMap = new object[] { del, param, null },
                        StartTime        = DateTime.Now.AddSeconds(interval),
                        TriggerRepeat    = repeact,
                        TrigggerInterval = interval
                    };
                    pth = new ParameterizedThreadStart(BackstageRun <JobDelegateFunction>);
                    Thread th = new Thread(pth);
                    th.Start(p);
                    // job.CreateJobWithParam<JobDelegateFunction>(new object[] { del, param,null }, DateTime.Now.AddSeconds(interval), interval, repeact);
                }
                else if (ckStartQuartz.Checked && rbDepth.Checked)
                {//该查询结果页轮询
                    DelegateData.BaseDelegate del = QuartzForeachPage;
                    QuartzJobParam            p   = new QuartzJobParam()
                    {
                        JobExecutionContextJobDataMap = new object[] { del, null, null },
                        StartTime        = DateTime.Now.AddSeconds(interval),
                        TriggerRepeat    = repeact,
                        TrigggerInterval = interval
                    };
                    pth = new ParameterizedThreadStart(BackstageRun <JobDelegateFunction>);
                    Thread th = new Thread(pth);
                    th.Start(p);
                    //job.CreateJobWithParam<JobDelegateFunction>(new object[] { del, null,null }, DateTime.Now.AddSeconds(interval), interval, repeact);
                }
                else if (ckStartQuartz.Checked)
                {
                    DelegateData.BaseDelegate del = QuartzCallBack;
                    QuartzJobParam            p   = new QuartzJobParam()
                    {
                        JobExecutionContextJobDataMap = new object[] { Cookie, param, del },
                        StartTime        = DateTime.Now.AddSeconds(interval),
                        TriggerRepeat    = repeact,
                        TrigggerInterval = interval
                    };
                    pth = new ParameterizedThreadStart(BackstageRun <JobAction <QQDataDA> >);
                    Thread th = new Thread(pth);
                    th.Start(p);
                    // job.CreateJobWithParam<JobAction<QQDataDA>>(new object[] { Cookie, param, del }, DateTime.Now, interval, repeact);
                }
                else
                {
                    JustQuery(param);
                }
                #endregion
            }
            else if (ckBackGroundCall.Checked && ckStartQuartz.Checked)
            {//轮询但是使用的是后台进程
                #region 使用的是后台进程
                BackGrounForeachCallType(param);
                #endregion
            }
            #region 数据同步到核心库
            if (ckSyncUin.Checked)
            { //同步数据
                string key = ForachCallEvent.SyncUinToCodeDB.ToString();
                if (BackGroundCallRunEvent.ContainsKey(key))
                {
                    BackGroundCallRunEvent.Remove(key);
                }
                DelegateData del = new DelegateData()
                {
                    BaseDel = BackGrounSyncUinToCoreDB, BaseDelegateParam = null
                };
                BackGroundCallRunEvent.Add(key, del);
            }
            #endregion
            if (!backRun.IsBusy)
            {
                backRun.RunWorkerAsync();
            }
        }