博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# 实现retry
阅读量:5950 次
发布时间:2019-06-19

本文共 2019 字,大约阅读时间需要 6 分钟。

C# 有try-catch ,但是没有retry 功能,通过用有限次循环的办法来模拟Retry,当然中间需要加一个等待的过程。

我们可以利用C#的匿名方法(anonymous methods)匿名委托(anonymous delegate)修饰此功能

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading;namespace Exchange.Common{    public class ActionExecutor    {        ///         ///         ///         /// 
/// /// /// /// /// /// public static void Excute
(Action
action, T1 arg1, string customerName, string actionName, string poNumber, int retryCount = 3) { Excute
(action, arg1, customerName, actionName, poNumber, new TimeSpan(0, 0, 3)); } ///
/// 重试一个参数带返回值 /// ///
参数类型1
///
返回类型
///
执行的方法 ///
参数1 ///
重试间隔 ///
重试次数 ///
返回类型T
public static void Excute
(Action
action, T1 arg1,string customerName,string actionName, string poNumber, TimeSpan retryInterval, int retryCount = 3) { //var exceptions = new List
(); for (int retry = 0; retry < retryCount; retry++) { try { action(arg1); return; } catch (Exception ex) { ExceptionHandler.Do(string.Format("{0} {1} \"{2}\" error", customerName, actionName, poNumber, retry), ex); //exceptions.Add(ex); Thread.Sleep(retryInterval); } } } }}
View Code

 

在其他类中调用

ActionExecutor.Excute(RequesetOrder, order,                                        CUSTOMER_NAME,                                                "request order detail", order.OrderNumber);//RequesetOrder 类方法//order 是RequesetOrder的参数

 

posted on
2017-04-18 17:46 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/sxypeace/p/6729076.html

你可能感兴趣的文章
eclipse开发环境
查看>>
如何计算硬盘、RAID组与Ceph的IOPS!!!
查看>>
18至今,学习Linux让我快速成长的三件事
查看>>
keepalived+nginx搭建高可用几个注意点
查看>>
pyinstaller 打包后运行错误
查看>>
一步一步学Ruby(十六):符号
查看>>
Spring Session + redis实现session共享
查看>>
阿里云的maven仓库
查看>>
hash table碰撞处理
查看>>
Oracle事务
查看>>
Spark2.0操作ES
查看>>
代码创建UISearchDisplayCountroller
查看>>
Android中的Handler机制
查看>>
揭秘jbpm流程引擎内核设计思想及构架
查看>>
PTSSpringBoard
查看>>
SHSidebarController
查看>>
微信公众号接口添加菜单时错误(errcode":40017 invalid button type)
查看>>
转: Xcode提示“expression is not assignable”
查看>>
nginx笔记
查看>>
浏览器安全-恶意网址拦截
查看>>