【问题标题】:How to handle management command exception in django app?如何处理 django 应用程序中的管理命令异常?
【发布时间】:2021-02-10 06:30:51
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 您提供的所有 3 个选项。

标签: python django exception message-queue django-management-command


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2014-02-09
    • 2013-05-22
    • 1970-01-01
    • 2020-07-29
    • 1970-01-01
    • 2020-10-11
    • 2018-08-25
    • 1970-01-01
    • 2016-06-12
    相关资源
    最近更新 更多