前提・実現したいこと
Herokuを使ってpythonのflaskで作ったウェブアプリケーションを公開することができました。
要約アプリ(クロムでしか動かないです)
次はこのウェブアプリケーションに書き込まれた情報と結果をDBに書き込み、それをherokuのサーバーに保存。その後参照したいと考えています。
下のようにユーザが書き込んだ情報や日付と結果をDBに書き込み、それを見たいと考えています。
上のようなシステムを構築するためにpythonで「データベースを作って、インサートしてheroku上のサーバに保存」するプログラムを書き、ローカルで上手く動いているのを確認して、Heroku上にアップロードしました。しかしURLにアクセスするとApplication eroor となりました。
発生している問題・エラーメッセージ
2019-03-15T02:06:33.228004+00:00 app[web.1]: [2019-03-15 02:06:33 +0000] [11] [INFO] Booting worker with pid: 11 2019-03-15T02:06:33.825657+00:00 heroku[web.1]: State changed from starting to up 2019-03-15T02:06:55.075985+00:00 heroku[web.1]: State changed from up to crashed 2019-03-15T02:06:54.875006+00:00 heroku[web.1]: Process running mem=1256M(245.3%) 2019-03-15T02:06:54.875141+00:00 heroku[web.1]: Error R15 (Memory quota vastly exceeded) 2019-03-15T02:06:54.875232+00:00 heroku[web.1]: Stopping process with SIGKILL 2019-03-15T02:06:55.005964+00:00 heroku[router]: at=error code=H13 desc="Connection closed without response" method=GET path="/" host=miyarecruit.herokuapp.com request_id=b6c49dbe-f088-4887-b89e-bb53bc8cc123 fwd="133.95.168.128" dyno=web.1 connect=0ms service=19292ms status=503 bytes=0 protocol=https 2019-03-15T02:06:55.062834+00:00 heroku[web.1]: Process exited with status 137 2019-03-15T02:07:14.143641+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=miyarecruit.herokuapp.com request_id=0d9750df-a411-4769-9488-10c3d3e9c617 fwd="133.95.168.128" dyno= connect= service= status=503 bytes= protocol=https
該当のソースコード
変更点 モジュールに文章と文字数をいれて、帰ってきた結果と時間と元の文章をDBに追加する処理を加えています。
python
1@app.route('/predict/',methods=['GET','POST']) 2def predict(): 3 4 sum_sentence,sum_num = summarize.dosum(num,sentence) 5 6 7 #DBに追加して、書き込み 8 #データベース接続のため 9 connection = psycopg2.connect("host=ec2-23-23-195-205.compamazonaws.com port=5432 dbname=demjsgs9 user=bei password=9eb69de7620b3fbf0fbdf3b5c097396") 10 cursor = connection.cursor() 11 cursor.execute("select version()") 12 13 #時間確保のため 14 15 import datetime 16 dt_now = datetime.datetime.now() 17 #print(dt_now) 18 dt_now = str(dt_now) 19 #print(dt_now) 20 21 cursor.execute("INSERT INTO test2 (time, input, output) VALUES (%s, %s, %s)", (dt_now, sentence, sum_sentence)) 22 cursor.execute("SELECT * FROM test2;") 23 cursor.fetchone() 24 connection.commit() 25 cursor.close 26 connection.close() 27 28 29 return json.dumps({ 30 "参照サイト数":sum_sentence, 31 "要約文字数":str(sum_num), 32 33 }
試したこと
しかしいまは![イとなっています。
ログで変わったところというとメモリ量2倍ぐらい変わっているのですが、なぜそうかわってしまってるのかがわかりません。
(色々試しているのですが、DB処理を加える前のプログラムをherokuに送ってもApplication error となってしまうので、今はロールバックで上手くいった時のを残しています。)
プログラムは下のようにしています。
git add . git commit -m"" git heroku push master
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー