【问题标题】:How to pass configuration parameters to a Celery task in a Flask app?如何将配置参数传递给 Flask 应用程序中的 Celery 任务?
【发布时间】:2017-06-28 21:14:53
【问题描述】:

我正在关注this tutorial 创建一个简单的 Flask 应用程序,以使用 http 请求启动长时间运行的 Celery 任务。

我想将一些配置参数(例如,db 连接字符串、api 密钥等)传递给任务。这些来自配置文件,而不是来自请求。 执行此操作的最佳方法是什么?如何从任务中访问这些参数?

【问题讨论】:

  • 根据答案。它们的配置方式与您的 Flask 应用程序完全相同。

标签: python flask celery config


【解决方案1】:

您可以将它们添加到您的Flask config,从烧瓶中导入 current_app 并使用

current_app.config['parameter']

【讨论】:

  • @suever 它们确实在应用程序上下文中运行。这就是ContextTask 的全部意义所在。
  • @JoeDoherty 对不起,我错过了他们正在使用 celery 任务的自定义,在这种情况下你是对的。
  • 我获取配置文件并将内容添加到 app.config,然后在 if name == "main中更新 celery.conf >":阻止。但是,如果我在任务中打印 app.config,则缺少最近添加的参数。
  • @Balint 我不完全确定你在那里做什么。您可以将代码添加到问题中吗?
猜你喜欢
  • 2015-12-05
  • 2018-10-19
  • 2019-11-13
  • 2018-01-04
  • 2016-02-28
  • 1970-01-01
  • 1970-01-01
  • 2018-10-07
  • 1970-01-01
相关资源
最近更新 更多