【问题标题】:Retry calling external services重试调用外部服务
【发布时间】:2019-05-04 15:18:08
【问题描述】:

我正在从我的服务器调用外部服务,我需要将坐标数据(从移动应用程序发送)发送到服务并取回收据。这项服务经常会中断一段时间。什么是重试发送数据的好习惯(在相当长的一段时间后:说间隔 1 小时)并确保没有重复。
谢谢。

【问题讨论】:

  • 抱歉 - 我没有正确阅读此内容。我仍然会使用类似于 Polly 的东西,但看起来你需要一个工作队列。每个作业都会有一个状态来保存关于它是否已发送的信息。我会把它保存在数据库中

标签: c# api azure web-services hangfire


【解决方案1】:

Polly 库可能是您最好的选择。

https://github.com/App-vNext/Polly

【讨论】:

  • 谢谢,看来波莉正是我所需要的
【解决方案2】:

Polly 在这方面是一个很棒的库,但是 polly 抽象了许多对不同场景有用的设计模式。在您的情况下,您可以使用 polly 并专门寻找“断路器”和“重试”模式。为了获得最佳重试策略,将断路器封装在 Retry 中。

【讨论】:

  • 谢谢,我去看看 Polly
【解决方案3】:

如果服务请求失败,您可以将坐标保存在移动应用的LocalDB中,间隔后尝试从LocalDB中发送坐标,如果发送成功则删除坐标。

【讨论】:

  • 实际上用户有时不会在他们的手机上打开wifi/4G,我们很快就需要数据,所以我们需要将数据从我们的服务器发送到服务
猜你喜欢
  • 2019-02-27
  • 2015-08-15
  • 1970-01-01
  • 1970-01-01
  • 2019-06-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多