1

我正在开发一个基于使用外部 ZeroMQ 消息队列的 django 应用程序 - 它一直在侦听队列,处理消息并将结果保存在数据库中。这些数据将在未来通过 API 提供给用户。

目前我正在通过自定义管理命令运行它,该命令listen运行无限循环并且工作正常。但是,只要出现某种错误(有时会出现,它是外部数据源),命令就会终止。

处理此类错误的最佳方法是什么?我正在考虑的事情:

  1. Bash 脚本将在失败时重新启动命令
  2. 主要命令功能中的大Try... except Exception(但这似乎非常错误)
  3. 一些自定义异常处理程序 - 问题是推荐的处理程序只处理视图/请求中的错误,我的命令不是视图/请求,它只是运行。

任何建议都会有用,也许是对管理命令的滥用?

4

1 回答 1

1

我有一个爬虫命令,我handle用 try/except 子句包装我的方法代码,以避免因错误而停止。但我注意到,当 Django 触发数据库异常时,命令将停止,忽略 try/except 块。我还没弄清楚为什么。

我认为这是应该“永远”运行(长时间运行)的命令的最佳选择。

于 2021-08-31T12:52:15.947 回答