如何异步运行Django管理命令?

时间:2017-03-08 20:05:36

标签: python django asynchronous

我有一个Django管理命令,我想以异步方式发布(通过call_command函数)。我的代码流程类似于:

  1. 用户填写网络表单(或在表单中编辑预先存在的值)。
  2. 用户点击提交按钮,我会进行一些处理。
  3. 处理完成后,我想发出管理命令而不强迫用户等待它返回
  4. 如果管理命令由于某种原因失败了,我不太关心(我的日志会抓住这些情况),所以允许用户以他们的快乐方式继续进行是没问题的。

    这种异步调用是否可行,如果是这样,我怎么能做到最好? threading库对于这种情况是否足够?我知道像Celery这样的软件包,但是使用类似的东西看起来就像我正在尝试做的事情一样简单。

1 个答案:

答案 0 :(得分:1)

这很简单!

只需使用django-rq即可。简单的馅饼。

我个人使用它来异步发送电子邮件,否则用户必须等待大约11秒。让我的生活更轻松它轻巧,我喜欢它!