2

我正在进行数据迁移,处理图像/视频等被下载然后使用其 api 发送到保管箱。

我正在为整个网络应用程序使用 python-django,但我想这将占用大量带宽,并且可能存在很多问题,即保存一个图像失败不应停止整个迁移。

因此,芹菜是个好主意吗?还是扭曲?

我有点困惑这对我有什么帮助。我想到的是为处理单个图像或一小组图像的过程生成一个服务器/线程,从而能够在多个线程上执行此操作。

4

1 回答 1

1

对您的问题的简短回答“芹菜是个好主意吗?” 是是的”。我使用 Celery 实现了一个类似的过程,其中用户提交表单会启动对 Twitter API 的异步调用,然后将其写回我数据库中保存的对象。我发现 Celery 非常适合这项任务(没有双关语)。

Celery 将允许您启动预定义的任务(在某种程度上,可以将其视为添加了 @task 装饰器的“普通”Python 函数),每次用户表示他们想要下载图像或图片。Celery 为您提供了对错误和重试的精细化、每个任务的控制,并且任务可以单独提交,也可以作为链、和弦或组提交,这意味着即使单个图像下载失败,您也绝对可以满足继续迁移的要求.

我建议花一些时间在这里学习 Celery 教程和这里的 Celery-Django 教程这将向您介绍 Celery 和 Django 的基本工作流程。

我无法谈论 Twisted 的优点,但如果您正在寻找关于每个人的相对优势和劣势的意见,这些看起来是一个好的开始:

于 2012-12-30T14:15:37.307 回答