回答編集履歴
1
コードを追記
test
CHANGED
@@ -2,3 +2,22 @@
|
|
2
2
|
|
3
3
|
10秒待っていますが、10秒以内に対象メッセージ行が複数回出ると、最新のメッセージが対象でなくても、未読の該当メッセージを全て処理し続けますが、その現象をみて「ループしている」と誤解しているのではないでしょうか?
|
4
4
|
当然ですが、対象メッセージが100行あると100回`curl`を実行しますよ。
|
5
|
+
|
6
|
+
# 追記:一度通知したら10秒間無視するサンプル(Bash)
|
7
|
+
`date +%s`は、1970-01-01 00:00:00 からの経過秒数です。
|
8
|
+
```Bash
|
9
|
+
last=0
|
10
|
+
hit_action() {
|
11
|
+
while read i
|
12
|
+
do
|
13
|
+
echo $i | grep -q "${_error_conditions}"
|
14
|
+
if [ $? = "0" ];then
|
15
|
+
now=$(date +%s)
|
16
|
+
if [ "$now" -gt "$last" ];then
|
17
|
+
通知処理
|
18
|
+
let last=now+10
|
19
|
+
fi
|
20
|
+
fi
|
21
|
+
done
|
22
|
+
}
|
23
|
+
```
|