我已经为长期运行的任务实现了rabbitmq。我已经实现了并发。功能来实现多线程并保持心跳活跃。如果我以交互方式/自己运行它,则此方法有效。
我想要完成的是: 1.启动虚拟机 2. VM下载最新的docker 3. Docker充当rabbitMQ队列的使用者 4.当docker使用消息时,确认并消亡(docker和实例)
现在,如果我以交互方式运行docker并使用消息,则心跳仍然有效,并且一切正常。
但是,当我在VM上自动执行此过程时。我错过了心跳。这是很令人困惑的,因为如果它是交互工作的,为什么在流程自动化时它不工作?
这是我得到的错误:
2019-11-07 14:14:28.904 [warning] <0.14199.0> closing AMQP connection <0.14199.0> (<some-ip>:58064 -> <some-ip>:5672,vhost: '/',user: 'user'):
client unexpectedly closed TCP connection
如果不是交互式运行,是否有可能在一段时间后关闭TCP端口?
此外,当我添加--privileged
时,它“有时”有效。没有特权就是根本行不通。但是有了它,它有时会起作用。超级混乱!
欢迎提出任何建议。我不太确定为什么要这样做。