如何处理网络故障代码并恢复?

发布于 2024-07-18 17:08:48 字数 376 浏览 3 评论 0原文

假设我正在更新一些信息,但网络连接断开了。

我应该如何编写代码来处理这种情况并从代码上次执行的位置恢复?

我能想到的一种可能的方法是捕获异常。 并再次重做逻辑。

while(网络问题){

网络问题 = false; try{

//第1步 - 从数据库读取信息 //第2步 - 存储在类对象上 //第3步-更新信息 //第4步 - 连接到另一个网络服务器 //第5步 - 更新信息

}catch(NetworkgoneException){ 网络问题 = true;
// 再次尝试连接 - 这一次我不知道需要多长时间。 }

}

suppose am in the middle of updating some information and the network connection goes off.

How should i write my code to handle such situation and resume from where the code was last executing?

One possible approach i could think of is to catch the exeception. and redo the logic again.

While(NetworkProblem){

NetworkProblem = false;
try{

//step 1 - Reading info from db
//step 2 - storing on class objects
//step 3 - updating info
//step 4 - connecting to another webserver
//step 5 - update info

}catch(NetworkgoneException){
NetworkProblem = true;
// try to connect again - this again i dont know how long will take.
}

}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

大海や 2024-07-25 17:08:48

原则上你的方法似乎没问题。 需要考虑的一些要点:

  • 您不想无限期地重试。 设置最大重试次数,然后中止。
  • 为了获得奖励积分,请将值得重试的错误与不值得重试的错误区分开来(例如,权威的否定 DNS 响应)。
  • 想想你在沟通中想要实现什么目标。 如果有些数据通过而有些数据未通过怎么办? 您是否需要某种事务概念来避免触发重复操作?

In principle your approach seems ok. Some points to consider:

  • You don't want to retry indefinitely. Have some maximum retry count, then abort.
  • For bonus points, distinguish errors that are worth retrying from those that are not (e.g. authoritative negative DNS response).
  • Think about what you are trying to accomplish in your communication. What if some data goes through and some does not? Do you need some kind of transaction concept to avoid triggering duplicat actions?
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文