using log4net; using log4net.Repository.Hierarchy; using Microsoft.Extensions.Logging; using Quartz; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using zzz.Common.Helper; using zzz.Common.LogHelper; using zzz.Model.Entity; using zzz.Services.ReadPLC; using zzz.Services.Sys.OperateLogs; using zzz.Services.Sys.TasksQzs; /// /// 这里要注意下,命名空间和程序集是一样的,不然反射不到 /// namespace zzz.Tasks { public class Job_PLC_read_line18 : JobBase, IJob { public ILogger _logger = null; private readonly IReadPLCDataService _readPlcDataService; //private readonly IWebHostEnvironment _environment; public Job_PLC_read_line18( ILogger logger, IReadPLCDataService readPlcDataService, //IWebHostEnvironment environment, ITasksQzServices tasksQzServices ) { _logger = logger; _readPlcDataService = readPlcDataService; //_environment = environment; _tasksQzServices = tasksQzServices; } public async Task Execute(IJobExecutionContext context) { var executeLog = await ExecuteJob(context, async () => await Run(context)); } public async Task Run(IJobExecutionContext context) { //var list = await _blogArticleServices.Query(); // 也可以通过数据库配置,获取传递过来的参数 //JobDataMap data = context.JobDetail.JobDataMap; //int jobId = data.GetInt("JobParam"); //ConsoleHelper.WriteColorLine("执行任务具体XXXXXXXXXXX", ConsoleColor.Red); // 可以直接获取 JobDetail 的值 var jobKey = context.JobDetail.Key; var jobId = jobKey.Name; // 也可以通过数据库配置,获取传递过来的参数 JobDataMap data = context.JobDetail.JobDataMap; _logger.LogInformation($"执行任务{jobKey}-{jobId}"); var jobParam = JsonHelper.JsonToObj(data["JobParam"].ToString()); await _readPlcDataService.ReadDataLine18(jobParam); } } }