Ejemplo n.º 1
0
        public void Execute(IJobExecutionContext context)
        {
            IJobDetail  jobDetail   = context.JobDetail;
            TaskContext taskContext = ReportTaskManage.GetJobInfo(jobDetail);
            List <Task <ReportTaskResult> > tasks = new List <Task <ReportTaskResult> >();
            DateTime nowTime = DateTime.Now;

            foreach (var reportTask in taskContext.ReportHandles)
            {
                reportTask.CreateDate = nowTime;
                ReportFileBase file = new MonitorReportFile(reportTask);

                if (file.CreateNewFile != null)
                {
                    tasks.Add(factory.StartNew(file.CreateNewFile, token));
                }
            }


            factory.ContinueWhenAll(tasks.ToArray(), (results) =>
            {
                foreach (var t in tasks)
                {
                    if (t.Result.Result == Result.Successful)
                    {
                        logger.Debug(string.Format("{0}..{1}..start save", t.Result.ReportInfo.Id, t.Result.ReportInfo.Name));
                        UpdateReportCollect(t.Result.ReportInfo);
                        logger.Debug("end save");
                    }
                }
            });
        }
Ejemplo n.º 2
0
 static void Main(string[] args)
 {
     Log.Debug("Start....");
     SetTimedTask();
     ReportTaskManage.CreateInstance().Start();
     //  Console.ReadKey();//出现线程死锁
     autoReset.WaitOne();
     Log.Debug("Exit....");
 }
Ejemplo n.º 3
0
 public static ReportTaskManage CreateInstance()
 {
     if (instance == null)
     {
         lock (lockHelper)
         {
             if (instance == null)
             {
                 instance = new ReportTaskManage();
             }
         }
     }
     return(instance);
 }