我不确定它应该在 stackoverflow 或 serverfault 中。我在这里发帖是因为这可能是一个编程问题。
我有这个无限循环:
#!/bin/bash
MESSAGE="XXX0"
RESULT=`curl "http://somepage.php?thread=0"`
while :
do
if [[ "$RESULT" == "DONE" ]]
then
RESULT=`curl "http://somepage.php?thread=0"`
elif [[ "$RESULT" == "NONE" ]]
then
sleep 5
RESULT=`curl "http://somepage.php?thread=0"`
else
printf "%s %s\n" "$(date --rfc-3339='seconds'): ELSE1-" "$RESULT" >> /var/log/XXX/loopXXX-`date --rfc-3339='date'`
sleep 5
RESULT=`curl "http://somepage.php?thread=0"`
if [[ "$RESULT" == "DONE" ]]
then
RESULT=`curl "http://jsomepage.php?thread=0"`
elif [[ "$RESULT" == "NONE" ]]
then
sleep 5
RESULT=`curl "http://somepage.php?thread=0"`
else
printf "STOP"
break
fi
fi
done
我有 3 个循环做同样的工作并请求线程 0 到 2。在 PHP 页面请求的 DBtable 中,有一个列线程。所以这三个循环查询同一个表(读/写),但从不查询相同的行。
我遇到的问题是,在某些晚上(几乎没有活动),一个循环在几个小时内都没有请求页面(我检查了 NGINX 访问日志)。这只有时会发生,并且服务器比需要的更强大。
curl 使用无限循环有问题吗?我总共有大约 10 个循环(不同的页面/表),但它们的睡眠时间是 10 秒而不是 5 秒。
我的脚本内存/卷曲有问题吗?你有没有经历过类似的事情?
谢谢!