0
現在のDjangoプロジェクトに関連するSupervisorプロセスを再起動するために、TextMateにバンドルを作成しました。 Pythonインタプリタでコードを実行すると、ブロックせずにプロセスが正常に再開されますが、TextMateバンドル(.pyファイルを保存するたびに実行されるように設定)として使用するとGUIが約3秒間ブロックされます。私がこれを避ける方法はありますか?TextMate Pythonバンドルnon-blocking
は、ここでは、コードは次のようになります。
#!/usr/bin/env python
import os
import subprocess
import threading
projname = os.environ.get('TM_PROJECT_DIRECTORY', '').rpartition('/')[2]
def restart_proj(projname=None):
""" Restart a supervisor instance.
Assumes that the name of the supervisor instance is the basename for
TM_PROJECT_DIRECTORY.
"""
if projname:
subprocess.Popen('$HOME/.virtualenvs/supervisor/bin/' \
'supervisorctl restart {0}'.format(projname),
shell=True, stdout=open('/dev/null', 'w'))
t = threading.Thread(target=restart_proj, args=(projname,))
t.start()
私はもうこのバンドルを使用しません。しかし、あなたの評価は妥当と思われます! – jmagnusson