LoginSignup
1
0

More than 3 years have passed since last update.

golang で簡単なポーリング処理をサンプルで書いてみた

Posted at

はじめに

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 という並行処理を行う仕組みもあるようなので、その使い方も調べてみようと思います。

参考

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0