はじめに
AWS などのサービスは、何かの操作を実行し、リソースのステータス状況を API で確認することがあると思います。
そのステータスの変化を API で確認したいとき、golang でどう書くかを簡単ですが書いてみました。
tl;dr
無限 for ループを使うやり方が簡単そうでした。以下サンプルです。
package main
import (
"fmt"
"time"
)
var count int
func callApi() bool {
if count >= 2 {
return false
}
count++
return true
}
func main() {
result := true
for result {
result = callApi()
fmt.Println("Waiting...")
time.Sleep(1 * time.Second)
}
fmt.Println("Finish")
}
一定回数呼ばれたら true/false が変わる関数 callApi
で API のステータス変化を簡易的に表してみました。
結果は以下のような形です。
Waiting...
Waiting...
Waiting...
Waiting...
Finish
おわりに
単体の API の処理であればこれで十分なのかなと思いました。golang には channel という並行処理を行う仕組みもあるようなので、その使い方も調べてみようと思います。