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

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

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) —

推荐阅读:
Bruteforce Algorithm to Find the Next Closet Time Reusing the Cu  The Overlapping Rectangles using CSS and Javascript  How to Count the Distinct Pairs using HashMap?  Blogger Jailed For Pokemon Go Gets Even More Trouble  Dead Simple Ways to Keep Your Best Blogging Ideas From Slipping   The Fear of Blogging is Real – Here’s How to Overcome It  Influential Cybersecurity Blogger Gets Digitally Attacked  Building Relationships with Your Influencers  Authorities In Vietnam Arrest Top Blogger For One Criticizing Co  The Top Health Bloggers You Should Be Following 
评论列表
添加评论