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("任务添加完成")); }
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("任务添加完成")); }
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("任务启动成功"); }
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("任务启动成功")); }
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(); }
static void JobTest() { IJob job1 = ReflectionHelper.Instance <IJob>("TestJob.Jobs", "TestJob"); job1.Excute(); }