zoukankan      html  css  js  c++  java
  • Polly每次重试执行不同的操作

    Polly每次重试执行不同的操作

    前言

      最近在写WG(用的 .net core 3.1 + wpf + abp vnext),程序里大量用到了重试机制选用的是Polly组件(只知道这个...)。

    遇到的问题

      在当前屏幕下根据NPC名称查找NPC的坐标,但自己的人物可能会挡住NPC,导致识别不到

    需求

      重试的时候希望执行

    1. 移动操作
    2. 根据重试次数调整文字识别准确度参数。

    寻求解决办法历程

    1. 百度、Bing!关键字搜索Polly等。说实话,官方更新的速度太快了,很多教程都已经不全面了。未果

    2. 官方文档!是在是太多了,最开始只看与Execute关键词有关的信息,没找到。然后整体看了一遍,还是没找到。

    3. Stackoverflow 各种关键词未找到。

    4. Google!

      1. 中文搜索!其实和Bing差不多,有时候还不如Bing。所以还是一样。
      2. 英文搜索!其实是找到了一篇文章,但没细看。最终错过!
    5. GitHub的Issues 最终找到了https://github.com/App-vNext/Polly/issues/38。这种方法也想过,但觉得很不好。将要妥协的时候,在最后一楼发现

      The ability to do this is now delivered in Polly v5.1. Polly's flowing with the execution becomes mutable, to allow what @YoniH and @hawkunsh requested.Context
      
      See http://www.thepollyproject.org/2017/05/04/putting-the-context-into-polly/ for details. Shout if any questions/suggestions.
      

      也就是在4里发现的那篇文章。

    最终代码

    Policy.Handle<Exception>()
        .Retry(retry, (ex, retryCount, context) =>
        {
            //赋值 重试次数
            context["retryCount"] = retryCount;
        })
        .Execute((ct) =>
        {
            //获取 重试次数
            var rc = ct["retryCount"];
            Console.WriteLine(rc);
        }, contextData: new Dictionary<string, object> { { "retryCount", 0 } /*初始化*/ });
    

    结束

      百度|Bing|Google

  • 相关阅读:
    predis操作
    mysql 笔记(转载)
    mysql 汉字根据首字母排序
    sql 优化
    update多条不同数据
    解决network is unreachable问题
    开启服务器端口
    数据库开启远程访问
    激活2021.2.1idea
    python向excel追加数据
  • 原文地址:https://www.cnblogs.com/dudd/p/12509668.html
Copyright © 2011-2022 走看看