用现有的flask-sqlachemy-postgres安装芹菜和redis



我目前使用ElasticBeanstalk (EB)在AWS上安装了带有flask-sqlalchemy扩展的postgres。Postgres使用RDS运行。现在我想设置一些后台任务。我读了芹菜,似乎很适合用例。

我想了解如何在AWS上设置它,以便它与同一个数据库通信。对于实际的队列,我想使用Redis。后台进程的业务逻辑和我在flask-webserver中的业务逻辑是非常交织在一起的。部署过程是什么样子的(有或没有EB)。如果需要,我可以为芹菜和redis设置一个新的实例,只要我不需要将业务逻辑分开很多。

我一直在想的另一个hack的解决方案是在一个节点上设置crons,在Flask应用程序中命中某些url来执行后台任务。但我更希望有一个更可扩展的解决方案。

我正在使用具有类似设置的Flask,我遵循以下答案:

如何使用AWS Elastic Beanstalk运行worker ?

我还使用这个.config文件设置redis:

https://gist.github.com/yustam/9086610

但是,对于我的设置,我将命令更改为:

command=/opt/python/run/venv/bin/python2.7 manage.py celery

My manage.py has:

@manager.command
def celery():
"""
Start the celery worker.
"""
with app.app_context():
    return celery_main(['celery', 'worker'])

最新更新