Design: How to Solve 503 Error of API when Resources are not ava

  • 时间:2020-09-08 11:19:41
  • 分类:网络文摘
  • 阅读:158 次

The HTTP 503 Error indidicates the server is busy. It might be due to the fact that the servers are overloaded (high load average).

One of my API is designed to return 503 Error when the cached file is not available. It is designed as the follows:

1
2
3
4
if (!is_file($file)) {
    throw_503();
    die();
}
if (!is_file($file)) {
    throw_503();
    die();
}

The $file will be updated periodically e.g. every minute via crontab. When the OS is writing to that file, the is_file will return false because the file is in-use.

One way of solving this is to have multiple caching versions, to avoid the single point of failure. For example, if a file-1 is not available we can check for file-2. These two files should not be updated at the same time.

Another way to resolve this issue is to add a delay check (hacky solution), for example:

1
2
3
4
5
6
7
if (!is_file($file)) {
   sleep(1); // delay check.
}
if (!is_file($file)) {
    throw_503();
    die();
}
if (!is_file($file)) {
   sleep(1); // delay check.
}
if (!is_file($file)) {
    throw_503();
    die();
}

–EOF (The Ultimate Computing & Technology Blog) —

推荐阅读:
程大位与剩余定理  “位数”和“数位”的意义为什么不同?  节约用水的资料  求发芽率、合格率、出粉率等百分率的公式中为什么都要乘100%?  为什么公历7月和8月都是31天  引流粉丝到公众号,网站运营的一点思考,引流技巧实操  站长如何赚钱?下面七条你做到了么?  个人站长成功的七条经验分享  个人站长必备的几个专业网站,能快速提高你的效率  站长赚钱方法 联盟广告赚钱方法 
评论列表
添加评论