私はforループを使って配列を繰り返します。配列内の各項目について、django-rest-framework要求を行う関数を呼び出します。各関数呼び出しは他の関数呼び出しとは独立しています。ループを最適化してdjango-rest-frameworkリクエストを作成する
アレイに25個の項目がある場合、現在は完了に30秒かかります。私は合計時間を10秒未満にしようとしています。
機能で費やされた時間の半分がDRF要求によって占められます。 forループをマルチプロセッシングプールに置き換えるのは理にかなっていますか?もしそうなら、各プロセスが要求パッケージを使用して別々の接続を介して要求を行うようにするにはどうすればよいですか?
私はちょうど交換してみました:
for scenario_id in scenario_ids: step_scenario_partial(scenario_id)
をして:
によるOpenSSL.SSL.Errorに失敗したpool = Pool(processes=2) pool.map(step_scenario_partial, scenario_ids)
:[( 'SSLルーチン'、 'ssl3_get_record'、「復号化が失敗しましたか
thisによると、エラーは複数のプロセスで同じSSL接続を再使用したためです。
スレッドは同時に実行されないため、同じSSL接続を再利用することによるエラーを回避できますか? – softweave
あなたの提案を試しました。累積時間はエラーなく8.3秒に短縮されました。 – softweave