Esempio n. 1
0
        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("数据库已还原");
                }
            }
        }
Esempio n. 2
0
 /// <summary>
 /// 执行
 /// </summary>
 /// <param name="context"></param>
 /// <returns></returns>
 public abstract Task Execute(IJobTaskContext context);
Esempio n. 3
0
        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());
        }
Esempio n. 4
0
 public override Task Execute(IJobTaskContext context)
 {
     Logger.Info($"当前任务编号:{context.JobId},执行时间:{DateTime.Now}");
     return(Task.CompletedTask);
 }
Esempio n. 5
0
 public override async Task Execute(IJobTaskContext context)
 {
     await Logger.Info(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
 }