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); }
private void IntervalDisplay(object quartzParam) { if (this.InvokeRequired) { DelegateData.BaseDelegate bd = new DelegateData.BaseDelegate(IntervalDisplay); this.Invoke(bd, quartzParam); return; } else { } }
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(); }
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); }
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); } }
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); } }
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(); } }
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(); } }
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); } }
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(); } }