Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将Huey连接到烧瓶应用程序_Python_Windows_Flask_Python Huey - Fatal编程技术网

Python 如何将Huey连接到烧瓶应用程序

Python 如何将Huey连接到烧瓶应用程序,python,windows,flask,python-huey,Python,Windows,Flask,Python Huey,我已经阅读了官方文件,但我不太确定我是否理解如何应用这些文件。我也看到了,我也使用工厂模式。只是看不到整个画面 连接池以及其他redis/huey设置可能因给定环境而异(开发,生产)。我们如何将huey连接起来,以便可以像Flask应用程序一样对其进行配置 只要我理解从视图触发任务,我们就需要导入任务模块并调用特定任务(调用传递敏感参数的函数)。我们应该在哪里实例化,保持huey实例 任务是否应该知道应用程序依赖关系?我们是否应该考虑另一个剥离的烧瓶应用程序?< /p> 你能帮我一点忙吗?我是

我已经阅读了官方文件,但我不太确定我是否理解如何应用这些文件。我也看到了,我也使用工厂模式。只是看不到整个画面

  • 连接池以及其他redis/huey设置可能因给定环境而异(开发生产)。我们如何将huey连接起来,以便可以像Flask应用程序一样对其进行配置

  • 只要我理解从视图触发任务,我们就需要导入任务模块并调用特定任务(调用传递敏感参数的函数)。我们应该在哪里实例化,保持huey实例

  • 任务是否应该知道应用程序依赖关系?我们是否应该考虑另一个剥离的<强>烧瓶<强>应用程序?< /p>

  • 你能帮我一点忙吗?

    我是这样把它连接起来的

    首先,以下是我的项目文件夹的内容:

  • 获取一个精简的烧瓶应用程序,供您的任务使用。正如建议的那样,我创建了一个辅助应用程序工厂:

    # 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
    
  • 创建任务包。这里的两个重要文件是
    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'])
    
    然后,
    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
    
  • 运行消费者。激活您的虚拟环境。然后从cmd运行(我在Windows上):

    huey_consumer.py app.tasking.config.huey

    其中,
    app.tasking.config
    是一个模块
    路径(在我的情况下!),并且
    huey
    是可用(在配置模块中)huey实例的名称。检查您的huey实例名称


  • 很高兴你成功了!我添加了一个其他人可能会觉得有用的github项目。