コード例 #1
0
        public IActionResult Save(hangfire_task dto)
        {
            string id  = _logApp.Save(dto);
            IJob   job = ReflectionHelper.Instance <IJob>(dto.assembly_namespace.Trim(), dto.class_name.Trim());

            RecurringJob.AddOrUpdate(id,
                                     () => job.Excute(_wxSetting.WeixinAppId, id), dto.cron_express, TimeZoneInfo.Local);
            return(Success("任务添加完成"));
        }
コード例 #2
0
        public IActionResult Save(hangfire_task dto)
        {
            string id  = _logApp.Save(dto);
            IJob   job = ReflectionHelper.Instance <IJob>(dto.assembly_namespace.Trim(), dto.class_name.Trim());
            Dictionary <string, string> jobParams = new Dictionary <string, string>();

            jobParams.Add("jobId", dto.id);
            RecurringJob.AddOrUpdate(id, () => job.Excute(jobParams), dto.cron_express, TimeZoneInfo.Local);
            return(Success("任务添加完成"));
        }
コード例 #3
0
        public ActionResult Resume(string id)
        {

            var dto = _logApp.GetModel(id.Trim());
            if (dto == null)
            {
                return Error("任务启动失败");
            }
            IJob job = ReflectionHelper.Instance<IJob>(dto.assembly_namespace.Trim(), dto.class_name.Trim());
            RecurringJob.AddOrUpdate(id,
                   () => job.Excute(_wxSetting.WeixinAppId, dto.id), dto.cron_express,TimeZoneInfo.Local);
            _logApp.Resume(dto.id);
            return Success("任务启动成功");
        }
コード例 #4
0
        public ActionResult Resume(string id)
        {
            var dto = _logApp.GetModel(id.Trim());

            if (dto == null)
            {
                return(Error("任务启动失败"));
            }
            IJob job = ReflectionHelper.Instance <IJob>(dto.assembly_namespace.Trim(), dto.class_name.Trim());
            Dictionary <string, string> jobParams = new Dictionary <string, string>();

            jobParams.Add("jobId", dto.id);
            RecurringJob.AddOrUpdate(id, () => job.Excute(jobParams), dto.cron_express, TimeZoneInfo.Local);
            _logApp.Resume(dto.id);
            return(Success("任务启动成功"));
        }
コード例 #5
0
ファイル: JobController.cs プロジェクト: hessli/Able.Store
        static void RunJob(IJob job)
        {
            lock (_running)
            {
                if (_running.Any(x => ReferenceEquals(x.Item1, job)))
                {
                    return;
                }
            }
            Tuple <IJob, Task> tuple = null;

            var task = new Task(() =>
            {
                try
                {
                    job.Excute();
                }
                catch (Exception e)
                {
                    var aggregate = e as AggregateException;

                    if (aggregate != null && aggregate.InnerExceptions.Count == 1)
                    {
                        e = aggregate.InnerExceptions.Single();
                    }
                }
                finally
                {
                    lock (_running)
                    {
                        _running.Remove(tuple);
                    }
                }
            }, TaskCreationOptions.PreferFairness);

            tuple = new Tuple <IJob, Task>(job, task);

            lock (_running)
            {
                _running.Add(tuple);
            }
            task.Start();
        }
コード例 #6
0
ファイル: Program.cs プロジェクト: xxdqr/Atlass.Framework
        static void JobTest()
        {
            IJob job1 = ReflectionHelper.Instance <IJob>("TestJob.Jobs", "TestJob");

            job1.Excute();
        }