Exemplo n.º 1
0
        /// <summary>
        /// 任务进度加入线程池
        /// </summary>
        public static void Start(ProgressiveJob progressiveJob, Object args)
        {
            if (progressiveJob == null)
            {
                return;
            }

            //if (progressiveJob.Unique == Unique.Global)
            //{
            //    if (_progressiveJobs.Any(job => job.GetType() == progressiveJob.GetType()))
            //    {
            //        throw new Exception("已有一个同一类型的全局任务正在执行。");
            //    }
            //}

            //if (progressiveJob.Unique == Unique.Session)
            //{
            //    if (_progressiveJobs.Any(job => job.GetType() == progressiveJob.GetType() && job.SessionId.Equals(progressiveJob.SessionId)))
            //    {
            //        throw new Exception("你已有一个同一类型的任务正在执行。");
            //    }
            //}
            if (!_progressiveJobs.Contains(progressiveJob))
            {
                _progressiveJobs.Add(progressiveJob);
            }

            //var sessionThreadStarter = new SessionThreadStarter(progressiveJob.Execute) { SessionId = progressiveJob.SessionId };
            var thread = new Thread(progressiveJob.Execute);

            thread.IsBackground = true;
            thread.Start(args);
        }
Exemplo n.º 2
0
        /// <summary>

        /// 通知客户端,服务端发生异常
        /// </summary>
        /// <param name="userLoginName"></param>
        /// <param name="progressiveJob"></param>
        /// <param name="msg"></param>
        /// <param name="stackTrace"></param>
        public static void Exception(string userLoginName, ProgressiveJob progressiveJob, String msg, String stackTrace)
        {
            if (_loginNameConnId.ContainsKey(userLoginName))
            {
                var hubContext = GlobalHost.ConnectionManager.GetHubContext <ProgressiveJobHub>();
                hubContext.Clients.Client(_loginNameConnId[userLoginName]).onException(progressiveJob, msg, stackTrace);
            }
        }
Exemplo n.º 3
0
 /// <summary>
 /// 通知客户端任务完成
 /// </summary>
 /// <param name="userLoginName"></param>
 /// <param name="progressiveJob"></param>
 public static void Finish(string userLoginName, ProgressiveJob progressiveJob)
 {
     if (_loginNameConnId.ContainsKey(userLoginName))
     {
         var hubContext = GlobalHost.ConnectionManager.GetHubContext <ProgressiveJobHub>();
         hubContext.Clients.Client(_loginNameConnId[userLoginName]).finish(progressiveJob);
     }
 }
Exemplo n.º 4
0
 public static void Remove(ProgressiveJob progressiveJob)
 {
     _progressiveJobs.Remove(progressiveJob);
 }