如何使用Amazon SQ设置芹菜和Django

2024-03-29 11:33:00 发布

您现在位置:Python中文网/ 问答频道 /正文

在django应用程序中尝试转换用户上传的视频。问题是,它正在消耗资源,而站点在这段时间内变得不可用,必须启动一个新实例来扩展它(我使用的是弹性Beanstalk)。我做了一些研究,决定在工人环境中使用SQS

我设置了celery并添加了必要的配置到设置.py文件

BROKER_TRANSPORT = 'sqs'
BROKER_TRANSPORT_OPTIONS = {
    'region': 'us-east-1',
    'polling_interval': 3,
    'visibility_timeout': 3600,
}
BROKER_USER = AWS_ACCESS_KEY_ID
BROKER_PASSWORD = AWS_SECRET_ACCESS_KEY

CELERY_DEFAULT_QUEUE = 'celery-convert-video'
CELERY_QUEUES = {
    CELERY_DEFAULT_QUEUE: {
        'exchange': CELERY_DEFAULT_QUEUE,
        'binding_key': CELERY_DEFAULT_QUEUE,
    }
}

我将POST url设置为/celeri convert video/ 我也会:

视频=TestVideo.objects.create(上传的视频=视频文件)

那么

在ConvertVideo.delay(视频编号=视频.id)在

将任务发送给SQS。它用一个url抓取他上传的文件并进行转换。它在本地运行,但问题出在云端。在

我在设置Worker环境时似乎遇到了问题,因为它的健康状况最终总是变得“严重”,每次我检查原因时,它都显示100%的请求返回错误4xx。记录显示是403。在

这些任务在SQS中显示得很好(但是它们是无法破译的,只是随机字母,我猜它是编码的?)然后开始“飞行”,所以我假设问题出在工人身上。我不知道如何正确设置它。在

所以有几个问题:

  1. 我必须为worker和主环境使用相同的部署文件吗?

  2. 我是否必须编辑部署文件并在我的worker环境中添加/celery convert video/view,然后将其发送到worker中等效的ConvertVideo函数?

  3. 如何将worker连接到主环境使用的RDS数据库?

  4. 如何消除403个错误并使员工健康恢复绿色?

如果有人有一个循序渐进的教程或什么,他们可以给我指出,这将是一个很大的帮助!在

另外,我不是云计算专家,这是我第一次尝试,所以请原谅我的无知。。在


Tags: 文件awsdefaultconvert视频环境queuevideo