redis 在AWS上何处运行Celery

omvjsjqw  于 2023-02-03  发布在  Redis
关注(0)|答案(1)|浏览(116)

在我的Django Web应用程序中,我正在运行一个计算,需要2-10分钟,AWS服务器超时,出现504服务器错误。
看来解决这个问题的最好方法是实现一个工人,并卸载计算。通过一些研究,似乎Celery与Redis服务器(也许AWS SQS代替?)最适合Django。
不过,我只看过本地运行示例的教程,Redis服务器托管在Railway上,Celery运行在独立的终端上,而不是Django(在同一台本地机器上),我很好奇Celery和Redis是否应该运行在AWS上。
这个answer写的是you should try to run celery as a deamon in the background. AWS Elastic Beanstalk uses supervisord already to run some deamon processes. So you can leverage that to run celeryd and avoid creating a custom AMI for this. It works nicely for me.,但是Celery和Redis服务器不是还需要运行吗?
Celery服务器在哪里运行?我如何启动它?我如何利用supervisord来运行守护进程?documentation在AWS集成方面对我帮助不大

uidvcgyl

uidvcgyl1#

您可以配置Procfile来并行运行多个进程,如主django应用、celery和celery-beat,如here所述:

web: <command to start your django app>

celery: celery -A <path_to_celery_app> worker

celery_beat: celery -A <path_to_celery_app> beat

相关问题