Bol*_*oze 6 python django task celery background-task
我正在尝试在 django 中执行一些消耗大量时间的任务。为此,我将运行后台任务。
经过一些研发,我找到了两种解决方案:
芹菜与 RabbitMQ。
Django 后台任务。
这两个选项似乎都满足标准,但设置 Celery 需要一些工作。现在就第二个选项而言,设置相当简单,而且在相当短的时间内,我可以继续编写后台任务。现在我的问题是,如果我采用第二个选项:
Django 后台任务的执行情况如何?- 这将取决于您实施的方式和内容。需要注意的一件事是,Django-background-tasks 基于数据库,其中 celery 可以将 redis/rabbitmq 作为后端,所以很可能我们会在这里看到相当大的性能差异。
我可以轮询数据库中的任务(一段时间后)以检查任务的状态吗?- 在 celery 中是可能的,也许您可以通过检查 django-background-tasks 内部代码找到解决方案。但有一件事是,我们可以中止 celery 任务,这在 Django-Background-tasks 中可能是不可能的。
Django-Background-tasks 的架构?找不到关于它的架构的任何明确解释(或者我错过了一些资源?) - 这是一个简单的基于 Django 的项目。你可以看看代码。这似乎很简单。
再次回到第一点,Django 后台任务在生产中的表现如何。- 未在生产中使用。但是由于Django-Background-tasks 是基于数据库的,并且 celery 可以配置为使用 redis/rabbitmq - 我认为 celery 在这里有一个加分点。
对我来说,这种比较,似乎是将手枪与高端自动机枪进行比较的环节。两者都做同样的工作。但一个简单明了 - 另一个有点复杂但有很多选择和范围。
根据您的用例进行选择。
| 归档时间: |
|
| 查看次数: |
3209 次 |
| 最近记录: |