【问题标题】:setup celery and redis with existing flask-sqlachemy-postgres使用现有的 flask-sqlalchemy-postgres 设置 celery 和 redis
【发布时间】:2015-11-04 05:29:32
【问题描述】:

我目前使用 ElasticBeanstalk (EB) 在 AWS 上设置了带有 flask-sqlalchemy 扩展的 postgres。 Postgres 使用 RDS 运行。现在我想设置一些后台任务。我读过关于 Celery 的文章,似乎非常适合用例。

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

我一直在考虑的另一个 hacky 解决方案是在一个节点上设置 crons,该节点在 Flask 应用程序中访问某些 URL 以执行后台任务。但我宁愿有一个更具可扩展性的解决方案。

【问题讨论】:

    标签: python amazon-web-services flask-sqlalchemy


    【解决方案1】:

    我正在使用具有类似设置的 Flask,我遵循了这个答案:

    How do you run a worker with AWS Elastic Beanstalk?

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

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

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

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

    我的 manage.py 有:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-13
      • 2022-08-04
      • 1970-01-01
      • 2017-12-15
      • 2012-08-16
      • 2022-01-15
      • 1970-01-01
      • 2016-10-14
      相关资源
      最近更新 更多