フロントエンドコールで実行される、時間のかかるバックエンドジョブを実行しようとしています。このバックエンドジョブは、セマフォを解放するコールバックメソッドが完了したときにコールバックメソッドを実行する必要があります。フロントエンドは、ジョブを開始するための呼び出しからの応答を得るために、長いプロセスが終了するのを待つ必要はありません。Python 2.6でコールバックでメソッドを非同期に実行
私はこの問題を解決するためにマルチプロセッシングライブラリのPoolクラスを使用しようとしていますが、いくつかの問題が発生しています。つまり、apply_asyncに渡されたメソッドを実際に実行する唯一の方法は、apply_async呼び出しによって返されたApplyResultオブジェクトの.get()メソッドを呼び出すことです。
これを解決するために、私はターゲットがapply_result.getであるProcessオブジェクトを作成すると考えました。しかし、これは動作していないようです。
私はここで紛失しているという基本的な理解はありますか?この問題を解決するために何を提案しますか?事前に助けを
p = Pool(1)
result = p.apply_async(long_process, args=(config, requester), callback=complete_long_process)
Process(target=result.get).start()
response = {'status': 'success', 'message': 'Job started for {0}'.format(requester)}
return jsonify(response)
ありがとう:
は、ここで私が今持っているもののスニペットの例です!