在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中显示得很好(但是它们是无法破译的,只是随机字母,我猜它是编码的?)然后开始“飞行”,所以我假设问题出在工人身上。我不知道如何正确设置它。在
所以有几个问题:
我必须为worker和主环境使用相同的部署文件吗?
我是否必须编辑部署文件并在我的worker环境中添加/celery convert video/view,然后将其发送到worker中等效的ConvertVideo函数?
如何将worker连接到主环境使用的RDS数据库?
如何消除403个错误并使员工健康恢复绿色?
如果有人有一个循序渐进的教程或什么,他们可以给我指出,这将是一个很大的帮助!在
另外,我不是云计算专家,这是我第一次尝试,所以请原谅我的无知。。在
目前没有回答
相关问题 更多 >
编程相关推荐