Python - Heroku で動的ファイルを提供しますか?

okwaves2024-01-24  6

2 つのスレッドを持つ flask アプリがあります。 1 つはスクレイピングされた情報から最新の状態に保つために flask テンプレートを変更し、もう 1 つは受信したルート リクエストを受け取る flask サーバーです。

from flask import Flask, render_template
import threading
import RunArbIfDown
app = Flask(__name__, static_url_path='')


@app.route('/')
def index():
    return render_template('index.html')

if __name__ == "__main__":
    threading.Thread(target=app.run).start()
    threading.Thread(target=RunArbIfDown.start).start() # this line continuously updates index.html (every 60s)

アプリを確認すると、エラーはないようですが、index.html が更新されません。 heroku dyno 上のファイルを変更することはできますか?これに対する良い解決策はありますか?



------------------------

WSGI 環境でスレッドを実行すると、予期しない結果が生じる可能性があります。通常、WSGI サーバーはスレッドを管理し、いつでもスレッドを作成したり強制終了したりできます。

また、スレッド コードを __n で保護しました。雨__状態。ファイルが直接開始された場合、コードは実行されます。 WSGI サーバーはそれを行いません。ファイルはインポートされますが、条件は満たされません。

Flask で定期的なタスクを実行する一般的な方法は、cron 経由でカスタム コマンドを使用することです。これは別のプロセスとして実行されます。

3

@Klaus D さん、洞察をありがとう。cron を使用し、__name__ 条件なしでそれを行う方法を共有していただけますか?

– ジェシー・レザー・ホラーサニー

2020 年 9 月 3 日 3:33

質問の中で、このセットアップはローカルでは正常に動作しますが、heroku では正常に動作しないことを言及すべきでした。

– ジェシー・レザー・ホラーサニー

2020 年 9 月 3 日 3:34

この質問は、stackoverflow.com/questions/63749430/… で、より再現性の高い質問に変更しました。

– ジェシー・レザー・ホラーサニー

2020 年 9 月 5 日 0:41

総合生活情報サイト - OKWAVES
総合生活情報サイト - OKWAVES
生活総合情報サイトokwaves(オールアバウト)。その道のプロ(専門家)が、日常生活をより豊かに快適にするノウハウから業界の最新動向、読み物コラムまで、多彩なコンテンツを発信。