如何配置Procfile来处理flask_script命令?

时间:2020-01-14 10:52:47

标签: heroku flask

我正在尝试在heroku上使用gunicorn运行manage.py文件。下面的代码包含使用flask manager命令运行flask应用程序的配置。

class GunicornServer(Command):

    description = 'Run the app within Gunicorn'

    def __init__(self, host='127.0.0.1', port=8000, workers=4):
        self.port = port
        self.host = host
        self.workers = workers

    def get_options(self):
        return (
            Option('-H', '--host',
                   dest='host',
                   default=self.host),

            Option('-p', '--port',
                   dest='port',
                   type=int,
                   default=self.port),

            Option('-w', '--workers',
                   dest='workers',
                   type=int,
                   default=self.workers),
        )

    def __call__(self, app, host, port, workers):

        from gunicorn import version_info

        if version_info < (0, 9, 0):
            from gunicorn.arbiter import Arbiter
            from gunicorn.config import Config
            arbiter = Arbiter(Config({'bind': "%s:%d" % (host, int(port)),'workers': workers}), app)
            arbiter.run()
        else:
            from gunicorn.app.base import Application

            class FlaskApplication(Application):
                def init(self, parser, opts, args):
                    return {
                        'bind': '{0}:{1}'.format(host, port),
                        'workers': workers 
                    }

                def load(self):
                    add_resources(app)
                    app.register_blueprint(api_blueprint)
                    register_blueprints(app)
                    return app

            FlaskApplication().run()


manager.add_command("gunicorn", GunicornServer())

这在我的本地计算机上使用命令python manage.py gunicorn进行调整。

我创建了包含以下内容的Procfile:

web gunicorn manage:app

这无法在heroku中找到路线。

0 个答案:

没有答案