iT邦幫忙

0

linebot push多筆 notify message 的問題 (python)

各位高手好
目前遇到一個問題,向各位高手請益
我目前寫了一個linebot(部署在heroku上)
輸入特定訊息後,鏈結到line notify連動的頁面
使用notify api完成連動,並紀錄user的access_token之後
再透過

lineNotifyMessage(access_token,message)
def lineNotifyMessage(token, msg):
      headers = {
          "Authorization": "Bearer " + token, 
          "Content-Type" : "application/x-www-form-urlencoded"
      }
    
      payload = {'message': msg}
      r = requests.post("https://notify-api.line.me/api/notify", headers = headers, params = payload)

去發送message訊息給已完成連動使用者

經過測試已經可以發送
但後來發現有些已完成連動的user無法接收到notify訊息
看了heroku log後才發覺有這個錯誤
at=error code=H12 desc="Request timeout"
(經實測大概發送約30個左右就會出現這個錯誤)
爬了一下文,發現heroku有30秒內完成request請求的限制
請問各位高手,有什麼解決的方式呢?

我的code如下

for token in access_token:
    message = 'message'
    lineNotifyMessage(token,message)
Rex Chien iT邦新手 5 級 ‧ 2019-08-19 09:57:39 檢舉
你用什麼方式來觸發傳送多個訊息?
1. 呼叫一個 API
2. 背景排程 (類似 cron)
JackKuo iT邦新手 5 級 ‧ 2019-08-19 13:07:22 檢舉
感覺是 LINE 的 Server 沒有回應你,照理來說不該這樣
建議你在 request 加上 timeout,然後做 try catch 失敗後重複再送個兩、三次
另外 LINE API 有發送次數限制

尚未有邦友回答

立即登入回答