故障排查 / 函数执行无响应
函数执行无响应可能有多种可能,需要根据不同情况进行辨别
具体表现为:
- 浏览器访问接口时,长时间处于加载中状态
- curl 方式调用接口时,长时间没有任何响应
此时,需要在 DataFlux Func 中写一个测试函数,并将其配置为「授权链接」,来帮助判断原因。
测试函数如下:
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 即可解决此问题。