public override async Task Execute(IJobTaskContext context) { var path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "nm_admin.sql"); if (!File.Exists(path)) { await Logger.Error("Sql文件不存在~"); return; } using (var sr = new StreamReader(path)) { var sql = await sr.ReadToEndAsync(); using (var con = _dbContext.NewConnection()) { await con.ExecuteAsync(sql); await Logger.Info("数据库已还原"); } } }
/// <summary> /// 执行 /// </summary> /// <param name="context"></param> /// <returns></returns> public abstract Task Execute(IJobTaskContext context);
public override async Task Execute(IJobTaskContext context) { var idData = context.JobExecutionContext.JobDetail.JobDataMap["id"]; if (idData == null) { await Logger.Error("任务编号不存在"); return; } var id = Guid.Parse(idData.ToString()); if (id == Guid.Empty) { await Logger.Error("任务编号不存在"); return; } var job = await _repository.GetAsync(id); if (job == null) { await Logger.Error("任务不存在"); return; } if (job.JobType != JobType.Http) { await Logger.Error("不是Http类型的Job"); return; } var jobHttp = await _httpRepository.GetByJob(id); if (jobHttp == null) { await Logger.Error("不是Http类型的Job"); return; } if (jobHttp.Url.IsNull()) { await Logger.Error("URL为空"); return; } var client = _clientFactory.CreateClient(); //设置请求头 if (jobHttp.Headers.NotNull()) { var headers = JsonSerializer.Deserialize <List <KeyValuePair <string, string> > >(jobHttp.Headers); if (headers.Any()) { foreach (var header in headers) { client.DefaultRequestHeaders.Add(header.Key, header.Value); } } } //设置认证方式 if (jobHttp.AuthType == AuthType.Jwt) { if (jobHttp.Token.IsNull()) { await Logger.Error("令牌为空"); return; } //jwt client.DefaultRequestHeaders.Add("Authorization", "Bearer " + jobHttp.Token); } HttpResponseMessage responseMessage; //GET请求 if (jobHttp.Method == HttpMethod.GET) { responseMessage = await client.GetAsync(jobHttp.Url); } //DELETE删除 else if (jobHttp.Method == HttpMethod.DELETE) { responseMessage = await client.DeleteAsync(jobHttp.Url); } //Post和Put请求 else { //设置参数 var content = new StringContent(jobHttp.Parameters); content.Headers.ContentType = new MediaTypeHeaderValue(jobHttp.ContentType.ToDescription()); responseMessage = jobHttp.Method == HttpMethod.POST ? await client.PostAsync(jobHttp.Url, content) : await client.PutAsync(jobHttp.Url, content); } await Logger.Info(await responseMessage.Content.ReadAsStringAsync()); }
public override Task Execute(IJobTaskContext context) { Logger.Info($"当前任务编号:{context.JobId},执行时间:{DateTime.Now}"); return(Task.CompletedTask); }
public override async Task Execute(IJobTaskContext context) { await Logger.Info(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); }