深度学习的遇到的坑

深度学习和rabbitmq线上问题实录

问题

flask face worker 监听rabbitmq 队列,对数据进行AI处理,
由于处理每条消息耗时较长,pika 连接mq 总是超时被server端断开连接

解决思路

由于频繁处理任务,所以用的是长连接,查阅资料,说是设置heartbeat=0,关闭客户端和server的心跳连接机制(官方不建议),结果设置这个还是不行,就想着把heartbeat 的值改为三个小时,如果一个任务处理超过三个小时就完蛋,
创建连接之后,开一个子线程,每隔几秒去和server端保持一次心跳,不让server端主动断开连接,然后主线程去执行任务。

遇到的BUG

每次收到任务之后,开一个子线程去执行任务,主线程保持心跳,维持连接,
这样理论是可以的,实现之后也可以消费,face模型跑一段时间之后(随机的时间)
,就卡在某个函数不动了,既不报错也不退出,非常尴尬,经过分析,猜测是因为出现了死锁,只能另寻解决方法,见上。

总结

深度学习的框架尽量不用多线程去跑,有可能是开多线程之后,某些网络卡住了,就会非常难排查和解决。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值