Skip to content

Commit 4b2d36a

Browse files
committed
bug fix
1 parent 5dbae6e commit 4b2d36a

4 files changed

Lines changed: 25 additions & 11 deletions

File tree

.version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.3.1
1+
1.3.2

lib/GoogleAPI.rb

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -45,14 +45,21 @@ def request(url, method = "GET", data = nil, retryCount = 0)
4545
result = JSON.parse(response)
4646

4747
if !result["error"].nil?
48-
if retryCount >= 10
49-
raise "Could not connect to #{tokenURI}, key id: #{keyID}, error message: #{response}"
48+
# Quota exceeded for quota metric 'Write requests' and limit 'Write requests per minute per user
49+
if result["error"]["code"] == 429
50+
puts "[GoogleAPI] Reached Rate Limited, sleep 30 secs..."
51+
sleep(30)
52+
return request(url, method, data, 0)
5053
else
51-
@token = generateJWT()
52-
message = "JWT Invalid, retry. (#{retryCount + 1})"
53-
logger.logWarn(message)
54-
puts "[GoogleAPI] #{message}"
55-
return request(url, method, data, retryCount + 1)
54+
if retryCount >= 10
55+
raise "Could not connect to #{tokenURI}, key id: #{keyID}, error message: #{response}"
56+
else
57+
@token = generateJWT()
58+
message = "JWT Invalid, retry. (#{retryCount + 1})"
59+
logger.logWarn(message)
60+
puts "[GoogleAPI] #{message}"
61+
return request(url, method, data, retryCount + 1)
62+
end
5663
end
5764
else
5865
return result

lib/Processors/GoogleSheetProcessor.rb

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ def processReviews(reviews, platform)
7373
end
7474
end
7575

76+
values = []
7677
filterReviews.each do |review|
7778
cols = []
7879
formatValues.each do |formatValue|
@@ -89,10 +90,15 @@ def processReviews(reviews, platform)
8990

9091
cols.append(formatValue)
9192
end
92-
93-
puts "[GoogleSheetProcessor] insert #{cols} to #{sheetID}-#{sheetName}"
93+
values.append(cols)
94+
end
9495

95-
googleAPI.request("https://sheets.googleapis.com/v4/spreadsheets/#{sheetID}/values/#{sheetName}:append?valueInputOption=RAW", "POST", {:values => [cols]})
96+
page = 1
97+
limit = 500
98+
values.each_slice(limit) do |value|
99+
puts "[GoogleSheetProcessor] Insert rows(#{page}/#{(values.length/limit).ceil + 1}) to #{sheetID}-#{sheetName}"
100+
page += 1
101+
googleAPI.request("https://sheets.googleapis.com/v4/spreadsheets/#{sheetID}/values/#{sheetName}!A1:append?valueInputOption=RAW", "POST", {:values => value})
96102
end
97103

98104
return reviews

lib/Processors/SlackProcessor.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ def processReviews(reviews, platform)
8282
logger.logError(payload)
8383
logger.logError(result)
8484
if result[:message] == "ratelimited"
85+
puts "[SlackProcessor] Reached Rate Limited, sleep 1 sec..."
8586
sleep(1)
8687
pendingPayloads.insert(0, payload)
8788
end

0 commit comments

Comments
 (0)