在Celery中使用Django的ORM

时间:2017-06-05 11:38:31

标签: python django celery

我有一些django微服务。 他们的主要工作量是持续的后台进程,而不是请求处理。

后台进程不断使用Django的ORM,因为我需要破解一些东西才能使它正常工作(它已经做了很长时间),现在我遇到了DB连接问题,因为Django是实际上并没有真正构建用于在后台使用数据库连接,我猜...

在这些情况下总是建议Celery,但在切换整个设计之前,我想知道它是否真的是一个很好的解决方案。

芹菜任务(很多的任务,耗时的任务)可以在后台使用Django的ORM而不会出现问题吗?

3 个答案:

答案 0 :(得分:2)

  

芹菜任务(很多任务,耗时的任务)可以在后台使用Django的ORM而没有问题吗?

是的,取决于您对“问题”的定义: - )

更严重的是:Django ORM性能主要受底层数据库引擎性能特征的限制。

例如,如果您选择的数据库引擎是PostgreSQL,您将能够处理大量的并发连接。

答案 1 :(得分:0)

Celery最初是专门为Django编写的离线任务处理器,虽然它后来被广泛用于处理任何Python代码,但它仍然与Django完美配合。

有多少任务和多长时间与技术选择无关;每个Celery工作程序都作为一个单独的进程运行,因此限制资源将是您的服务器容量。

答案 2 :(得分:0)

您可以使用以下步骤导入django env

event_data