故障排查 / 函數執行無響應
函數執行無響應可能有多種可能,需要根據不同情況進行辨別
具體表現為:
- 瀏覽器訪問接口時,長時間處於加載中狀態
- curl 方式調用接口時,長時間沒有任何響應
此時,需要在 DataFlux Func 中寫一個測試函數,並將其配置為「函數 API」,來幫助判斷原因。
測試函數如下:
Python | |
---|---|
1 2 3 |
|
1. 測試函數正常
可能原因及解決方案:
可能原因 | 解決方案 |
---|---|
所調用函數確實需要運行很長時間 | 聯繫函數開發者排查問題 |
2. 無法發佈測試函數、或調用測試函數無響應
可能原因及解決方案:
可能原因 | 解決方案 |
---|---|
存在隊列阻塞 | 前往「關於 / 獲取系統報告 / 清空工作隊列」 |
Redis 連接存在問題 | 排查 Redis 連接配置是否正確並重啓整個 DataFlux Func |
關於「Redis 連接存在問題」
在 k8s 中部署 DataFlux Func 的場景下,如果遇到 k8s 集羣崩潰重啓或 Redis Pod 崩潰重啓,但 DataFlux Func 本身並未重啓時,可能會導致所有函數調用都無響應。
這可能是由於 k8s 集羣或 Redis Pod 重啓後,DataFlux Func 與 Redis 的舊連接並未關閉,或者 DataFlux Func 無法得知 Redis 連接已斷開,從而導致 DataFlux Func 任務進程始終在等待來自 Redis 的消息但又永遠無法正常通訊。
此時,在保證 Redis 已經正常運行的前提下,重啓整個 DataFlux Func 即可解決此問題。