1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- using Newtonsoft.Json;
- using RestSharp;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading;
- using System.Threading.Tasks;
- using XYY.Tool.QuotaReduction;
- namespace XYY.Tool.TimingTask
- {
- public static class dingApiRequest
- {
- public static void sendDingMessageToChat(string jobName, string message)
- {
- int count = 0; bool isSucess = false;
- do
- {
- try
- {
- var client = new RestClient(JobConfig.dingdingApi);
- client.Timeout = -1;
- var request = new RestRequest(Method.POST);
- request.AddHeader("Content-Type", "application/json");
- var ddModel = new
- {
- ServiceType = "钉钉",
- TargetName = "定时任务失败",
- Content = jobName +"【"+ DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")+"】 " + (!string.IsNullOrEmpty(message) ? "执行结果,"+ message : "定时任务完成" ),
- };
- var body = JsonConvert.SerializeObject(ddModel);
- request.AddParameter("application/json", body, ParameterType.RequestBody);
- IRestResponse response = client.Execute(request);
- if (response.StatusCode == System.Net.HttpStatusCode.OK)
- {
- isSucess = true;
- }
- else
- {
- count++;
- }
- }
- catch (Exception ex)
- {
- count++;
- }
- Console.WriteLine($"【{jobName}】钉钉消息发送:{(isSucess ? "成功" : "失败")}");
- //睡眠再继续
- if (count <= JobConfig.QuotaReductionJobTryTime && !isSucess) { Thread.Sleep(JobConfig.dingdingTryTimeInterval); }
- }
- while (count <= JobConfig.dingdingTryTime && !isSucess);
- }
- public static void sendMessageToWeChat(string jobName, string message,List<string>WeChatId)
- {
- int count = 0; bool isSucess = false;
- do
- {
- try
- {
- var client = new RestClient(JobConfig.weChatApi);
- client.Timeout = -1;
- var request = new RestRequest(Method.POST);
- request.AddHeader("Content-Type", "application/json");
- var weChatModel = new
- {
- ServiceType="微信",
- TargetName = jobName,
- Content ="【" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "】 " + (!string.IsNullOrEmpty(message) ? "执行结果," + message : "定时任务完成"),
- UserId=WeChatId,
- };
- var body = JsonConvert.SerializeObject(weChatModel);
- request.AddParameter("application/json", body, ParameterType.RequestBody);
- IRestResponse response = client.Execute(request);
- if (response.StatusCode == System.Net.HttpStatusCode.OK)
- {
- isSucess = true;
- }
- else
- {
- count++;
- }
- }
- catch (Exception ex)
- {
- count++;
- }
- Console.WriteLine($"【{jobName}】企微消息发送:{(isSucess ? "成功" : "失败")}");
- //睡眠再继续
- if (count <= JobConfig.QuotaReductionJobTryTime && !isSucess) { Thread.Sleep(JobConfig.dingdingTryTimeInterval); }
- }
- while (count <= JobConfig.dingdingTryTime && !isSucess);
- }
- }
- }
|