【问题标题】:Where to use Celery in Django?在 Django 中哪里可以使用 Celery?
【发布时间】:2013-11-22 14:30:18
【问题描述】:

我正在阅读 Django Celery 的this tutorial,我想知道既然 Django 是一个 Web 开发框架,Celery 将实际用于在 Web 开发中对任务进行排队?

使用示例给出您的建议。

【问题讨论】:

  • 任何无法在 Web 请求中完成的长时间运行的工作。
  • @SimeonVisser - 像什么?请提供任何现实生活中的例子。谢谢

标签: django celery django-celery


【解决方案1】:

基本上,在典型的请求-响应 Web 应用程序周期中必须发生的任何事情。

目标通常是通过在后台执行这些任务来提高性能。

几个例子:

  • 发送通知电子邮件。
  • 更新或使非关键缓存失效
  • 调用外部网络服务

【讨论】:

  • 如果我错了,请纠正我。假设我从网页请求abc 并且处理这些变量需要很长时间。单独的函数负责处理每个变量。所以,通常我会这样做,a = a_funct()b = b_funct()c = c_funct()。取而代之的是,我应该在这些函数上使用 celery,这样我就不必等待a's 响应在 b 上然后在 c 上,而是所有函数都应该异步运行。我说的对吗?
  • 其次,如何在Updating or invalidating non-critical caches上使用celery?
  • @prafulbagai 这不是芹菜的用例。当请求页面触发响应中不需要但必须在某个时候发生的操作时,您使用 Celery。这是一个示例:用户订阅了您的邮件列表。您无需向他们发送欢迎电子邮件,即可回复:“好的,您已订阅”。所以你要做什么,我在 Celery 中创建一个异步任务来发送电子邮件,然后返回“OK you're subscribed”。用户现在收到 HTTP 响应,稍后会在 Celery 处理任务时收到电子邮件。
猜你喜欢
  • 1970-01-01
  • 2016-10-06
  • 1970-01-01
  • 1970-01-01
  • 2016-02-08
  • 1970-01-01
  • 2018-12-11
  • 2018-04-15
  • 1970-01-01
相关资源
最近更新 更多