/// <summary> /// Реализовал здесь, чтобы не тянуть зависимость от окон во ViewModel /// </summary> private void OkButton_Click(object sender, RoutedEventArgs e) { try { var authViewModel = DataContext as AuthWindowViewModel; var codebaseService = CommonContainer.Resolve <ICodebaseService>(authViewModel.CodebaseUrl); codebaseService.LogIn(authViewModel.Username, txtPassword.Password); AuthConfigHelper.LastCodebaseUrl = authViewModel.CodebaseUrl; AuthConfigHelper.LastUsername = authViewModel.Username; if (authViewModel.IsPasswordSaving) { AuthConfigHelper.SavedPassword = txtPassword.Password; } else { AuthConfigHelper.DeletePassword(); } } catch (Exception ex) { MessageBox.Show(ex.Message, this.Title); return; } new MainWindow().Show(); this.Close(); }
/// <summary> /// //Trigger触发后,job执行时调用本方法。true即否决,job后面不执行。 /// </summary> /// <param name="trigger"></param> /// <param name="context"></param> /// <returns></returns> public bool VetoJobExecution(ITrigger trigger, IJobExecutionContext context) { var taskHelper = CommonContainer.Resolve <ITaskHelper>(); taskHelper.UpdateRecentRunTime(trigger.JobKey.Name, TimeZoneInfo.ConvertTimeFromUtc(context.FireTimeUtc.Value.DateTime, TimeZoneInfo.Local)); return(false); }
/// <summary> /// 启用任务调度 /// 启动调度时会把任务表中状态为“执行中”的任务加入到任务调度队列中 /// </summary> public static void StartScheduler() { try { if (!_scheduler.IsStarted) { //添加全局监听 _scheduler.ListenerManager.AddTriggerListener(new CustomTriggerListener(), GroupMatcher <TriggerKey> .AnyGroup()); _scheduler.Start(); var taskHelper = CommonContainer.Resolve <ITaskHelper>(); //获取所有执行中的任务 List <TaskModel> listTask = taskHelper.GetAllTaskList()?.ToList <TaskModel>(); _currentTaskList = listTask; if (listTask != null && listTask.Count > 0) { foreach (TaskModel taskUtil in listTask) { try { ScheduleJob(taskUtil, true);//防止修改cron表达式 } catch (Exception e) { LogHelper.WriteLog($"任务“{taskUtil.TaskName}”启动失败!", e); } } } LogHelper.WriteLog("任务调度启动成功!"); } } catch (Exception ex) { LogHelper.WriteLog("任务调度启动失败!", ex); } }
/// <summary> /// /// </summary> /// <returns></returns> public static IList <TaskModel> CurrentTaskList() { if (_currentTaskList == null) { var taskHelper = CommonContainer.Resolve <ITaskHelper>(); _currentTaskList = taskHelper.GetAllTaskList(); } return(_currentTaskList); }
public void Execute(IJobExecutionContext context) { try { var testService = CommonContainer.Resolve <ITestService>(); testService.TestPrintAsync(); // 3. 开始执行相关任务 LogHelper.WriteLog("当前系统时间:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); Thread.Sleep(1000); } catch (Exception ex) { LogHelper.WriteLog(context.Trigger.Description, ex); } }
/// <summary> /// Job完成时调用 /// </summary> /// <param name="trigger">触发器</param> /// <param name="context">上下文</param> /// <param name="triggerInstructionCode"></param> public void TriggerComplete(ITrigger trigger, IJobExecutionContext context, SchedulerInstruction triggerInstructionCode) { var taskHelper = CommonContainer.Resolve <ITaskHelper>(); taskHelper.UpdateNextFireTime(trigger.JobKey.Name, TimeZoneInfo.ConvertTimeFromUtc(context.NextFireTimeUtc.Value.DateTime, TimeZoneInfo.Local)); }