IPython Notebook でいくつかの長いタスクを実行し、ブラウザを閉じてから、しばらくしてから再度開いて、これらのタスクの結果を明らかにすることは可能ですか?
たとえば、次のようなタスク:
def f():
import time
time.sleep(100)
with open("result.txt", "w") as fh:
fh.write("Done.")
タスクを正常に実行し、完了する前にブラウザーを閉じて、ブラウザーを再び開くと、 no が表示され'result.txt'
ます。
マジックまたは並列実行を使用して実行すると、%px
完了する前にブラウザを閉じても結果が得られません。
利用可能な拡張機能やハックはありますか? または、何か不足していますか?
更新 1:
IPythonにはバックグラウンド ジョブ コントロールのサポートがありますが、ブラウザーを切断するとバックグラウンド ジョブが古くなります。私が思いついた唯一のことは%connect_info
、ブラウザを閉じる前に発行し、次に使用して画面端末から接続することです
ipython console --existing <ID>.json
そこから私の仕事を実行します。
更新 2:
さらに便利なハックは、ipython console
と ジョブ コントロールの組み合わせです。つまり、ブラウザでバックグラウンド ジョブを開始しているときに、コンソールを開いて同じセッションにアタッチし、ジョブが終了するまで自由に閉じることができます。
更新 3:
バージョン iPython 1.0dev 以降、ハックなしで動作するようです。必要なものを実行するだけで、ブラウザを閉じても実行されます。