| | |
| | | using WIDESEAWCS_QuartzJob.DTO; |
| | | using WIDESEAWCS_QuartzJob.CustomException; |
| | | using Quartz.Impl.Matchers; |
| | | using WIDESEAWCS_Core.LogHelper; |
| | | |
| | | namespace WIDESEAWCS_QuartzJob |
| | | { |
| | |
| | | public SchedulerCenterServer(IJobFactory jobFactory) |
| | | { |
| | | _iocjobFactory = jobFactory; |
| | | _scheduler = GetSchedulerAsync(); |
| | | // 使用同步上下文运行异步方法 |
| | | _scheduler = Task.Run(async () => await GetSchedulerAsync()).GetAwaiter().GetResult(); |
| | | } |
| | | private IScheduler GetSchedulerAsync() |
| | | private async Task<IScheduler> GetSchedulerAsync() |
| | | { |
| | | if (_scheduler != null) |
| | | return this._scheduler; |
| | |
| | | }; |
| | | //StdSchedulerFactory factory = new StdSchedulerFactory(collection); |
| | | StdSchedulerFactory factory = new StdSchedulerFactory(); |
| | | return _scheduler = factory.GetScheduler().Result; |
| | | return _scheduler = await factory.GetScheduler(); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | |
| | | }; |
| | | //StdSchedulerFactory factory = new StdSchedulerFactory(collection); |
| | | StdSchedulerFactory factory = new StdSchedulerFactory(); |
| | | _scheduler = factory.GetScheduler().Result; |
| | | _scheduler = await factory.GetScheduler(); |
| | | } |
| | | |
| | | this._scheduler.JobFactory = this._iocjobFactory; |
| | |
| | | { |
| | | //等待任务运行完成 |
| | | await this._scheduler.Start(); |
| | | await Console.Out.WriteLineAsync(QuartzJobInfoMessage.StartJobSuccess); |
| | | QuartzLogger.Info(QuartzJobInfoMessage.StartJobSuccess); |
| | | result = WebResponseContent.Instance.OK(QuartzJobInfoMessage.StartJobSuccess); |
| | | return result; |
| | | } |
| | |
| | | }; |
| | | //StdSchedulerFactory factory = new StdSchedulerFactory(collection); |
| | | StdSchedulerFactory factory = new StdSchedulerFactory(); |
| | | _scheduler = factory.GetScheduler().Result; |
| | | _scheduler = await factory.GetScheduler(); |
| | | } |
| | | |
| | | |