我在一些 GCP 项目的云功能中有用于电子邮件发送的微服务。在不同的 GCP 项目中,我使用 kubernetes 部署了电子商务应用程序。我想通过我的微服务在电子商务上进行一些活动后发送邮件,我使用 pub/sub 进行通信。我在 celery 任务中发布消息时遇到问题。当我使用管理命令发布消息时一切正常,但是当我从管理命令触发芹菜任务时出现问题。 code image 这将导致如下图所示的错误(进程“ForkPoolWorker-10”pid:276 以“信号 11(SIGSEGV)”退出)但是奇怪的事情 - 正在发送消息,而收件人收到此消息。 error image
其他任务没有这样的问题。如果我注释行“ 未来=publisher.publish(topic_path, json_data.encode("utf-8")) ” 没有错误。我知道信号 11 (SIGSEGV) 连接到内存,但我已经让我的 kubernetes 机器更强大,所以我认为这不是问题。
Logs from GCP 奇怪的也是 ForkPoolWorker-7 成功完成此任务的原因,但 'ForkPoolWorker-3' pid:227 以 'signal 11' 退出
答案 0 :(得分:1)
好的,问题在于创建多线程的发布者 PublisherClient 和 celery 不能正确使用线程。