行き先が新しいです。サーバーがHTTPリクエストを受信していると同時に、データを更新できるようにRedis通知をチェックする必要があるとします。以下の例は以下のとおりです。Golangでリッスンするサーバーと一緒にバックグラウンドタスクを実行するベストプラクティスは何ですか?
func checkExpire() {
for {
switch msg := pubSubConn.Receive().(type) {
case redis.Message:
...
}
}
server.ListenAndServe()
単に良い解決策ゴルーチンへcheckExpire
を入れていますか?
go func() {
for {
switch msg := pubSubConn.Receive().(type) {
case redis.Message:
...
}
}()
なぜですか?それは完全にうまくいくはずです。 – tier1
私はあなたが何を求めているのか分からず、ゴルーチンはGoで同時に何かを実行する方法です。他に何をしますか? – JimB
ゴルーチンは、メインプロセスが終了するのを妨げないことに注意してください。 main()の最後に 'for {} 'でブロックする必要があるかもしれません。 * edit *実際にはserver.ListenAndServeはブロックする必要があります – Plato