Design: How to Solve 503 Error of API when Resources are not ava
- 时间:2020-09-08 11:19:41
- 分类:网络文摘
- 阅读:154 次
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) —
推荐阅读:新学期的打算 有关水的议论文 我的家乡焦作作文 成长的困惑 采蘑菇数学题 小红可能在什么时间去摘西红柿 称螺丝的数学题 一乘二分之一加二乘三分之一加…九十九乘一百分之一加一百乘一百零一分之一等于多少?求答题过程和答案。 为什么所有剩下的钱加起来是51元? 十二个乒乓球特征相同,其中只有一个重量异常
- 评论列表
-
- 添加评论