Pythonサービスを殺さずにmod_fcgidをリロードします
質問
私は現在、学校のWebサーバーでFCGIを使用してDjangoプロジェクトを実行しています。仮想ローカルPython環境をインストールすることを推奨する複数のガイドに従いましたが、うまくいきました。私が抱えていた唯一の問題は、ソースファイルをリロードするために私のFCGIファイルを「触れる」ことでは十分ではありませんでしたが、代わりにSSHを介してPythonサービスを殺さなければなりませんでした。これは、mod_fcgidが使用されるためです。
しかし、管理者は、私が自分の地元のPythonを実行したということは素晴らしいアイデアだとは思わなかった。彼は、ルートにどのモジュールをインストールするかを彼に言っただけで、それをもっとよく考えました。これは本当に素晴らしいサービスでした。
しかし、これを行うと、PythonはRootの下にあるため、Pythonを殺すことはできません(私は不道徳ですが、私は間違いなく試しました)。管理者の推奨事項は、タイムスタンプをチェックしてFCGIスクリプト自体をリロードするようにする必要があるということでした。私はこれを行う方法についてのドキュメントを見つけようとしましたが、ほとんど資金を供給していません。私は絶対的な初心者なので、何が機能するのかわかりません。 mod_fcgidの下でpython/djangoを実行した経験や、関連するガイド/ドキュメントを見つける場所に関するヒントの経験がある人はいますか?
解決
??????????????
## top of my .fcgi script
import sys, time
original_modules = sys.modules.copy()
## in a separate thread
old_ctime = os.path.getctime("mymodule.py")
while True:
time.sleep(10)
new_ctime = os.path.getctime("mymodule.py")
if new_ctime > old_ctime:
sys.modules = original_modules # reset all imports
import mymodule
mymodule.dofcgi()
????????????????(????????????/ w????????????)???????????????????????????????????????????????????
??