Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MQProducer.close() 无法彻底关闭底层资源 #86

Open
Chunlin-Li opened this issue Jun 19, 2019 · 0 comments
Open

MQProducer.close() 无法彻底关闭底层资源 #86

Chunlin-Li opened this issue Jun 19, 2019 · 0 comments

Comments

@Chunlin-Li
Copy link

Chunlin-Li commented Jun 19, 2019

背景: 因为 Producer 并不会持续发送数据,所以希望在收到任务调度的时候,初始化 Producer 并处理异步任务进行发送,任务结束后,销毁 Producer 以免占用额外的资源(CPU,内存,socket 连接等)

问题: 使用 Producer 发送数据后,看到 socket 的建立以及周期任务的执行;但调用 .close() 方法后,日志显示已经 unregister producer 并且 producer close 了,但已建立的 socket 连接依然是 ESTAB 状态,且日志依然周期性的输出 mq 相关任务的执行

ali-one 版本: 3.6.5
node: 10.9.0

----------- 2019-06-19 22:23--------
排查发现是因为 _producerTable 里面除了自己注册上去的 producer 外,还有一个 defaultProducer。 在 close 的时候,自己的 producer 移除掉了,但是 defaultProducer 还在, 导致 mq_client 不能关闭 mq_client_api.

是否可以考虑在 close 时检查当前是否只剩一个 defaultProducer,如果是的话就将其一并关掉,如果还有其他 Producer 或 Consumer 则继续保留。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant