どんな走行うPythonスクリプトを待たずにで仕上げる?[重複]
-
23-08-2019 - |
質問
この質問に答えはこちら
私の作成に少しダッシュボード用のユーザーが彼の走行特定です。を使用していDjangoきたいと思っていましたがなされる場合はリンクをクリックの仕事を返却しますのページに戻されたメッセージが動かした場合に起こります。その結果をメールで送信されますた。
と思うことが決まってい利用 subprocess.Popen
がんのスポンサーではありません。で擬似コードが、こちらでいきたいと思い:
if job == 1:
run script in background: /path/to/script.py
return 'Job is running'
解決
p = subprocess.Popen([sys.executable, '/path/to/script.py'],
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT)
これは、バックグラウンドでサブプロセスを開始します。あなたのスクリプトが正常に動作し続けます。
ドキュメントを読んでここを。
他のヒント
メッセージキューを介してこれを実行すると、間違いなくあなたが長期的なスケーリングを考えている場合は移動するための方法です。バックグラウンドで常に実行しているキューにメッセージを送信し、メッセージの異なる種類に対処するためのジョブハンドラを記述します。
は、ジャンゴを使用しているので、私は Beanstalkd にはかなり良いと思いますフィット。 ここでかなりいいチュートリアルこのです件名。その記事の最初のコメントもいくつかの良いヒントを持っています。
個人的に私はCで書かれたPythonバインディングしかし、<のhref =「http://code.google.com/p/redis/」RELと、Erlangで書かれたカスタムメモリ内のキューサーバで圧延しました=「noreferrer」> Redisののそれは、将来のキューイング/メッセージング・ニーズのための偉大な候補として出て働くかもしれないように見えます。この情報がお役に立てば幸い!
subprocess.Popenは、あなたが探しているものを実際にされています。
あなたがサブプロセスと親の間の情報の束を通信を開始したいことを見つけた場合、あなたはツイストのようなスレッド、またはRPCフレームワークを検討する必要がありますが。
しかし、最も可能性の高いものは、あなたのアプリケーションのためにあまりにも重いです。