Design: How to Solve 503 Error of API when Resources are not ava
- 时间:2020-09-08 11:19:41
- 分类:网络文摘
- 阅读:152 次
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) —
推荐阅读:外婆家的菜园作文 我们一起加油吧 我的灰色童年 最后一个六一儿童节作文500字 姥姥家的菜园作文 数学题:三位老师带50名学生去参观植物园 在一个面积5平方分米的正方形里画一个最大的圆 数学题:有两个底面半径相等的圆柱,高的比是2:5 数学题:用这堆沙在5米宽的公路上铺2厘米厚的路面 数学题:某县城去省城的高速公路长160千米
- 评论列表
-
- 添加评论