回答編集履歴

1

コードを追記

2023/03/23 03:04

投稿

otn
otn

スコア84423

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
+ ```