

Google Apps ScriptからCloud
Functions関数のエンドポイントURLに対して繰り返しリクエストを送信して結果を受信・加工するプログラムを作成しましたが、リクエスト送信時に時折
"address unavailable" エラーが発生してプログラムが停止(異常終了)してしまいます。  
後述のように、対症療法で異常終了を回避できてはいるのですが、エラーの根本原因やエラーの発生自体の回避方法についてご存知の方がいればご教授いただきたいです。

### 作成したプログラムの概要

  * Cloud Functions関数の同一のエンドポイントURLに対して、リクエストパラメータが異なる3000～4000件程度のリクエストをUrlFetchApp.fetch()で順次送信します。

  * リクエストの頻度は2.4～2.7リクエスト/秒です。(リクエスト間にsleepによる待機は入れておらず、前のリクエストの処理が完了したら即座に次のリクエストを送信します)

### 問題の概要

  * 数百リクエストに1回程度の頻度で "address unavailable" エラーが発生して、プログラムが異常終了します。(エラーの頻度は計測したわけではなく肌感覚です)

  * 異常終了するリクエストは決まっていません。実行毎に異なるリクエストでエラーが発生します。

  * エラーが発生した後、それほど間を置かず(2～3分以内)にプログラムを再実行すると、エラーが発生するタイミングが後ろにずれ、最終的に最後まで実行できました。(ただし、何度も繰り返して再現性を確認したわけではないのでこれは偶然かもしれません

  * リクエストとリクエストの間に0.1～0.5秒のsleepを入れてみましたが、問題は改善しませんでした。

### 試みた対応策

対症療法として、UrlFetchApp.fetch()をtry～catchで囲み、エラー発生時に1秒ほどsleepしてからリトライするようにしました。その結果、時折リトライしながらも最後まで実行できるようにはなりました。  
ただ、これは対症療法ではあるので、 "address unavailable"
エラーが発生する根本原因やエラーの発生を回避する方法をご存知の方がいればご教授いただきたいです。


CC BY-SA 4.0
2022-04-21T08:11:40.800
88436
2022-04-21T16:34:54.700
2022-04-21T16:34:54.700
3060
52308
question
google-apps-script google-cloud
Google Apps Acript で UrlFetchApp.fetch を使って繰り返しリクエストを送信すると "address unavailable" エラーが発生する