Polly每次重试执行不同的操作
Polly每次重试执行不同的操作
前言
最近在写WG(用的 .net core 3.1 + wpf + abp vnext),程序里大量用到了重试机制选用的是Polly组件(只知道这个...)。
遇到的问题
在当前屏幕下根据NPC名称查找NPC的坐标,但自己的人物可能会挡住NPC,导致识别不到
需求
重试的时候希望执行
- 移动操作
- 根据重试次数调整文字识别准确度参数。
寻求解决办法历程
百度、Bing!关键字搜索
Polly
等。说实话,官方更新的速度太快了,很多教程都已经不全面了。未果官方文档!是在是太多了,最开始只看与
Execute
关键词有关的信息,没找到。然后整体看了一遍,还是没找到。Stackoverflow 各种关键词未找到。
Google!
- 中文搜索!其实和Bing差不多,有时候还不如Bing。所以还是一样。
- 英文搜索!其实是找到了一篇文章,但没细看。最终错过!
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
Polly每次重试执行不同的操作的更多相关文章
- 【EF 译文系列】重试执行策略的局限性(EF 版本至少为 6)
原文链接:Limitations with Retrying Execution Strategies (EF6 onwards) 当使用重试执行策略的时候,大体有以下两种局限性: 不支持以流的方式进 ...
- Entity Framework 6 暂停重试执行策略
EF6引入一个弹性连接的功能,也就是允许重新尝试执行失败的数据库操作.某些复杂的场景中,可能需要启用或停用重试执行的策略,但是EF框架暂时尚未提供直接的设置开关,将来可能会加入这种配置.幸运的是,很容 ...
- 闯祸了,生成环境执行了DDL操作《死磕MySQL系列 十四》
由于业务随着时间不停的改变,起初的表结构设计已经满足不了如今的需求,这时你是不是想那就加字段呗!加字段也是个艺术活,接下来由本文的主人咔咔给你吹. 试想一下这个场景 事务A在执行一个非常大的查询 事务 ...
- Android AlarmManager(全局定时器/闹钟)指定时长或以周期形式执行某项操作
AlarmManager的使用机制有的称呼为全局定时器,有的称呼为闹钟.通过对它的使用,个人觉得叫全局定时器比较合适,其实它的作用和Timer有点相似.都有两种相似的用法:(1)在指定时长后执行某项操 ...
- svn执行clean up 操作时报错 "Previous operation has not finished; run 'cleanup' if it was interrupted"解决如下!
今天在项目中更新的时候,突然间爆了一个svn的这个错误,当时提示我去clean up操作,结果我执行clean up操作时候,还是报错,后来坚持出来,是因为ios项目中的一个图标出了问题,使svn进入 ...
- UIMenuController搭配UIPasteboard,执行拷贝-黏贴操作-b
一.基本概念 UIKit框架中,可以直接执行拷贝黏贴操作的有:UITextView.UITextField和UIWebView,其他控件需要实现相关方法. 关于UIPasteboard ·黏贴板是ap ...
- Android之AlarmManager(全局定时器/闹钟)指定时长或以周期形式执行某项操作
1.AlarmManager,顾名思义,就是“提醒”,是Android中常用的一种系统级别的提示服务,可以实现从指定时间开始,以一个固定的间隔时间执行某项操作,所以常常与广播(Broadcast)连用 ...
- 不借助工具在浏览器中通过Web API执行Dynamics 365操作(Action)实例
摘要: 本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复262或者20170727可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyon ...
- java for循环里面执行sql语句操作,有效结果只有一次,只执行了一次sql mybatis 循环执行update生效一次 实际只执行一次
java后台controller中,for循环执行数据库操作,但是发现实际仅仅执行了一次,或者说提交成功了一次,并没有实际的个数循环 有可能是同一个对象导致的 可以仔细看一下下面两段代码有什么区别 p ...
随机推荐
- linux下安装glibc-2.14,解决“`GLIBC_2.14' not found”问题
下载安装包:http://ftp.gnu.org/gnu/glibc/ 我下载的是glibc-2.14.1.tar.gz 解压:tar xzf glibc-2.14.1.tar.gz cd glibc ...
- [LC] 215. Kth Largest Element in an Array
Find the kth largest element in an unsorted array. Note that it is the kth largest element in the so ...
- 推送至远程仓库使用git push -u的原因
第一次把本地仓库推送至远端时,为了以后方便一定要使用 git push -u origin master [此处是把本地的master分支推送至远程的master分支]
- VisionPro连接Dalsa线扫相机
1 环境配置 硬件:编码器(提供编码信号的PLC) 线扫相机 镜头 相机线缆 图像采集卡(Dalsa_Xcelera-CL_PX4 Dual) 软件:VisionPro 8.2 VisionPro软件 ...
- Trie树的插入,查前缀,查单词,删前缀和删单词。
这个Trie原先用C++就敲得很熟了,看了蓝桥杯的视频后学会把一个功能这样封装起来,以后用的时候就很爽可以直接调用了,所以就用Java写了: public class Trie { private f ...
- kendoUI 免费部分开发部分经验。
kendo分多个版本,核心UI免费版.NET,JAVA,PHP对应的前后端开发版. 基础免费版开放的UI经多个测试,与收费封装的UI并无区别,收费版提供了后端代码和前端封装语法,使不懂JS前端的也可简 ...
- Java 内部类(成员内部类、局部内部类、静态内部类,匿名内部类)
一.什么是内部类? 内部类是指在一个外部类的内部再定义一个类.内部类作为外部类的一个成员,并且依附于外部类而存在的.内部类可为静态,可用protected和private修饰(而外部类只能使用publ ...
- ubuntu 16 下安装 Ubuntu Make
第一步:下载安装包 地址:http://ftp.gnu.org/gnu/make/ 第二步:解压 先进入存放文件目录,图示: 进行解压,图示: 解压并copy到安装目录 第三步:编译 1.查看目录, ...
- 手把手教你利用Jenkins持续集成iOS项目
前言 众所周知,现在App的竞争已经到了用户体验为王,质量为上的白热化阶段.用户们都是很挑剔的.如果一个公司的推广团队好不容易砸了重金推广了一个APP,好不容易有了一些用户,由于一次线上的bug导致一 ...
- 测试LFI WITH PHPINO过程中的一些记录
原理:以往LFI漏洞都是需要满足两个条件:1.攻击者上传一个含PHP代码的的文件,后缀名任意,没有后缀名也可以:2.需要知道上传后的文件路径及文件名,然后包含之. 后来有国外研究者发现了新的攻击方式, ...