回答編集履歴

4

行の重複を修正

2020/11/06 13:42

投稿

sfdust
sfdust

スコア1137

test CHANGED
@@ -98,12 +98,6 @@
98
98
 
99
99
  continue
100
100
 
101
- else:
102
-
103
- raise APIError(response)
104
-
105
-
106
-
107
101
  # リクエスト制限以外で5回連続でエラーが起きた場合は本当に例外を発生させる。
108
102
 
109
103
  else:

3

status_code

2020/11/06 13:42

投稿

sfdust
sfdust

スコア1137

test CHANGED
@@ -80,13 +80,29 @@
80
80
 
81
81
  return response
82
82
 
83
+ if response.status_code == 429:
84
+
85
+ # リクエスト制限が発生したときは100+1秒待つ
86
+
87
+ print("request limit. wait 100 secs")
88
+
89
+ time.sleep(101)
90
+
83
91
  else:
84
92
 
85
- print("Request limit. Wait 100 seconds")
93
+ # その他のエラーの場合は5秒待ってリトライ
86
94
 
87
- time.sleep(101) # 内部時計の狂いを考慮して念のため+1秒余計に待つ
95
+ print(f"Unknown Error:{response.status_code}")
88
96
 
97
+ time.sleep(5)
98
+
89
- continue
99
+ continue
100
+
101
+ else:
102
+
103
+ raise APIError(response)
104
+
105
+
90
106
 
91
107
  # リクエスト制限以外で5回連続でエラーが起きた場合は本当に例外を発生させる。
92
108
 

2

typo

2020/11/06 13:36

投稿

sfdust
sfdust

スコア1137

test CHANGED
@@ -22,7 +22,7 @@
22
22
 
23
23
 
24
24
 
25
- この目的を達するために、やや強引ですが、[gspreadのソース](https://github.com/burnash/gspread/blob/master/gspread/client.py#L25)を参考に、すべてのAPIリクエストの元締めである**gspreadライブラリのclientオブジェクトのreuest関数を書き換えてみました**。
25
+ この目的を達するために、やや強引ですが、[gspreadのソース](https://github.com/burnash/gspread/blob/master/gspread/client.py#L25)を参考に、すべてのAPIリクエストの元締めである**gspreadライブラリのclientオブジェクトのrequest関数を書き換えてみました**。
26
26
 
27
27
 
28
28
 

1

comments

2020/11/06 13:28

投稿

sfdust
sfdust

スコア1137

test CHANGED
@@ -96,6 +96,8 @@
96
96
 
97
97
 
98
98
 
99
+ # 関数を書き換える。
100
+
99
101
  gspread.Client.request = custom_request
100
102
 
101
103