4

HerokuでアプリをアップグレードしてFlask0.9と新しいGeventを使用しましたが、それ以降、アプリをHerokuで動作させることができませんでした。python web_app.pyProcfileで使用すると問題なく動作しますが、以下を使用します。

web: gunicorn web_app:app -w 3 -b 0.0.0.0:$PORT -k gevent --max-requests 250

ここで、アプリケーションのエントリポイントは、適切な名前のweb_app.pyという名前のファイルです。

私はそれを基本的な「HelloWorld」に縮小しましたが、それでもクラッシュしました。また、Gunicornを使用せずに、Flaskドキュメントの他のサーバーのセクションで説明されているようにGeventサーバーのみで実行してみましたが、すぐにクラッシュしました。私は自分の環境をなんらかの方法で台無しにしたか、requirements.txtが厄介だと思っています。

これが私のrequirements.txtファイルです:

jinja2
werkzeug
flask
wtforms
gevent
gunicorn
psycopg2
sqlalchemy
itsdangerous
flask-seasurf
flask-login
flask-debugtoolbar
flask-sqlalchemy
flask-script
flask-uploads
flask-failsafe
requests
alembic
braintree
cloudinary

Flaskのデフォルトサーバーを使用して意味のあるトラフィックを処理できないため、助けていただければ幸いです。提供する必要のある情報は他にありますか?

編集:

これがエラーです

app/web.1:  2012-12-08 21:18:22 [7] [INFO] Booting worker with pid: 7
app/web.1:  2012-12-08 21:18:22 [7] [INFO] Worker exiting (pid: 7)
app/web.1:  2012-12-08 21:18:22 [6] [INFO] Worker exiting (pid: 6)
app/web.1:  2012-12-08 21:18:22 [5] [INFO] Worker exiting (pid: 5)
app/web.1:  Traceback (most recent call last):
app/web.1:  File "/app/.heroku/venv/bin/gunicorn", line 12, in <module>
app/web.1:  load_entry_point('gunicorn==0.14.6', 'console_scripts', 'gunicorn')()
app/web.1:  File "/app/.heroku/venv/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 32, in run
app/web.1:  WSGIApplication("%prog [OPTIONS] APP_MODULE").run()
app/web.1:  File "/app/.heroku/venv/lib/python2.7/site-packages/gunicorn/app/base.py", line 124, in run
app/web.1:  Arbiter(self).run()
app/web.1:  File "/app/.heroku/venv/lib/python2.7/site-packages/gunicorn/arbiter.py", line 185, in run
app/web.1:  self.halt(reason=inst.reason, exit_status=inst.exit_status)
app/web.1:  File "/app/.heroku/venv/lib/python2.7/site-packages/gunicorn/arbiter.py", line 280, in halt
app/web.1:  self.stop()
app/web.1:  File "/app/.heroku/venv/lib/python2.7/site-packages/gunicorn/arbiter.py", line 328, in stop
app/web.1:  self.reap_workers()
app/web.1:  File "/app/.heroku/venv/lib/python2.7/site-packages/gunicorn/arbiter.py", line 419, in reap_workers
app/web.1:  raise HaltServer(reason, self.WORKER_BOOT_ERROR)
app/web.1:  gunicorn.errors.HaltServer: <HaltServer 'Worker failed to boot.' 3>

ちなみに、私は誤って残したすべての印刷ステートメントを取り出しましたが、これはまったく役に立ちませんでした。

4

1 に答える 1

2

Heroku-fails-to-start-my-app-but-foreman-start-worksの質問に対するソリューションを使用しました。人々が疑問に思っている場合に備えて、私はこのメソッド呼び出しでアプリ作成を囲みました:

@failsafe
def create_app():
  from routes import app
  return app

そして、その答えで指示されているように私のプロファイルを構成しました:

web: gunicorn legalkin_app:create_app\(\) -w 3 -b 0.0.0.0:$PORT -k gevent --max-requests 250

ちなみに、私はこれをしなければならないために何か馬鹿げたことをしましたが、それが何であるかわかりません。

于 2012-12-16T00:00:34.560 に答える