【问题标题】:What's the best way to handle SIGTERM and SIGINT signals in a pubsub service?在 pubsub 服务中处理 SIGTERM 和 SIGINT 信号的最佳方法是什么?
【发布时间】:2020-05-11 01:42:03
【问题描述】:

我有一个用 python 编写的相对简单的服务,它从 pubsub 订阅执行异步拉取,然后在它收到的消息上运行一个子进程。我目前只是调用 result() 并无限期地阻塞并让后台线程管理一切。处理服务可能收到的信号的最佳和最干净的方法是什么? (例如,我喜欢记录服务的启动和关闭)。我应该抓住信号并调用 cancel() 吗?

【问题讨论】:

  • 您能否提供有关您现在如何处理信号的更多信息,以及有关代码(代码 sn-p)的更多信息?

标签: google-cloud-pubsub google-cloud-python


【解决方案1】:

捕捉信号并调用 cancel() 应该可以工作。这是在example Python quickstart for receiving messages 中完成的。

【讨论】:

  • 该方法仅处理 SIGINT,因为它捕获了 KeyboardInterrupt 异常。任何收到的 SIGTERM 都会直接杀死程序而不执行任何清理代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-07-03
  • 2010-12-04
  • 2016-11-09
  • 2018-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多