C#简单企业微信推送
推送函数
public static void BankPush()
{
var idstr = string.Join("|", users.Select(u => u.WECHATID));
try
{
string weChatMessage = "【标题】:提醒\n" +
$"【推送时间】:{DateTime.Now}\n";
// 调用内部接口,实现企业微信消息推送
var sendText = new QywxSendText
{
keyid = "推送号keyid",
touser = "推送用户1|用户2...",
msg = "weChatMessage "
};
string msgUrl = $"http://127.0.0.1:8089/api/WxMsg/SendText";
string json = JsonConvert.SerializeObject(sendText);
string wxMsgResponse = HttpHelper.HttpPost("BankWxMsg", msgUrl, json, CommonConst.ContentTypeJson, 1, 3 * 60 * 1000);
if (!string.IsNullOrWhiteSpace(wxMsgResponse))
{
var resp = JsonConvert.DeserializeObject<CommonResponse>(wxMsgResponse);
if (resp != null && resp.Status == 1)
{
logger.info($"【推送{idstr}数据】--{DateTime.Now}");
}
else
{
logger.debug($"【推送异常{idstr}】--{DateTime.Now}");
}
}
}
catch (Exception ex)
{
logger.debug($"【推送异常】--{DateTime.Now}");
throw;
}
logger.info($"【推送数据】合计{idstr}条. --{DateTime.Now}");
}
工具类HttpHelper:using Polly
用于处理应用程序中的故障和暂时性问题。它提供了一种简洁且灵活的方式来定义和应用各种重试、降级和熔断策略,以提高应用程序的稳定性和可靠性。
private static readonly Polly.Retry.RetryPolicy retryPolicy = Policy
.Handle<Exception>() // 捕获所有异常
.Retry(3, (exception, retryCount) => {
// 日志记录重试次数和异常信息
Console.WriteLine($"Retry {retryCount} failed: {exception.Message}");
});
#region 通用Post请求
// 使用 Polly 的重试策略
public static string HttpPost(string title, string url, string postdata, string contentType, int retryTimes = 1, int timeout = 60 * 1000)
{
return retryPolicy.Execute(() =>
{
return Post(url, postdata, contentType, timeout);
});
}
8975

被折叠的 条评论
为什么被折叠?



