lex*_*eme 2 python windows flask python-huey
我已经阅读了官方文档,但我不太确定我是否理解如何应用他们所说的内容。我也看过这个 QA,我也使用了工厂模式。只是看不到全貌。
连接池以及其他 redis/huey 设置可能会根据给定的环境(开发、生产)而有所不同。我们如何连接huey以便我们可以像Flask应用程序一样配置它?
只要我了解从视图触发任务,我们就需要导入任务模块并调用特定任务(调用传递敏感参数的函数)。我们应该在哪里实例化,保留huey实例?
任务应该了解应用程序的依赖关系吗?对于这个问题,我们是否应该考虑另一个精简的Flask应用程序?
你能帮忙一点吗?
这是我如何将其全部连接起来的。
首先,这是我的项目文件夹的内容:
获取一个精简的 Flask 应用程序供您的任务使用。正如帖子中所建议的,我创建了一个辅助应用程序工厂:
# global dependencies
db = SQLAlchemy()
def create_app_huey(config_name):
app = Flask(__name__)
# apply configuration
app.config.from_object(config[config_name])
# init extensions
db.init_app(app)
return app
Run Code Online (Sandbox Code Playgroud)创建任务包。这里的两个重要文件是config.py
和tasks.py
。这篇文章有很大帮助。让我们从配置开始。请注意,这是非常简单的方法。
# config.py (app.tasking.config)
import os
from huey import RedisHuey
settings__development = {
'host': 'localhost'
}
settings__testing = {
'host': 'localhost'
}
settings__production = {
'host': 'production_server'
}
settings = {
'development': settings__development,
'testing': settings__testing,
'production': settings__production,
'default': settings__development
}
huey = RedisHuey(**settings[os.getenv('FLASK_ENV') or 'default'])
Run Code Online (Sandbox Code Playgroud)
然后tasks.py
模块将如下所示:
import os
from app.tasking.config import huey
from app import create_app_huey
app = create_app_huey(config_name=os.getenv('FLASK_ENV') or 'default')
@huey.task()
def create_thumbnails(document):
pass
Run Code Online (Sandbox Code Playgroud)运行消费者。激活您的虚拟环境。然后从cmd运行(我在Windows上):
huey_consumer.py app.tasking.config.huey
哪里app.tasking.config
有包裹。包裹。模块路径(在我的例子中!),
是可用的(在配置模块中) hueyhuey
实例的名称。检查您的Huey实例名称。
归档时间: |
|
查看次数: |
3003 次 |
最近记录: |