

Pythonにて Seleniumで、あるURLのアクセスをThreadPoolExecutorにて並列4
taskで実行するscriptを組んでいるのですが、実行時から約１時間ほどは期待通りのタスクが次々に完了していくのですが、macの画面がscreen
saverに切り替わった時、あるいはmacをある1時間ほど放置しているとThreadPoolExecutorのタスクが急激に遅くなり目的のtaskが時間内に完了できません。下記にThreadPoolExecutorを使った、実行の行をコピーしました。ThreadPoolExecutorを使ってタスクの優先度をscreen
saverなどに影響されないようにできないものでしょうか？

追加でテストした結果、 max_worker = 4, max_worker = 3いずれも
2668個のtask後に停止していました。(全taskは約3500)

[code]

    with ThreadPoolExecutor(max_workers = 4) as executor:
        futures = [executor.submit(selenium_wo_head,url_u, t, url_l) for t in code_key_list]
        result = [selenium_drive_without_head.result() for selenium_wo_head in futures]
    
[/code]

**実行環境:**  
MacBook Pro  
macOS Monterey


CC BY-SA 4.0
2022-10-03T11:23:36.070
91422
2022-10-16T16:23:30.317
2022-10-16T16:23:30.317
3060
54679
question
python macos selenium
Selenium と concurrent.futures を使ったタスク実行が、スクリーンセーバーで停止してしまう


皆様返信ありがとうございました。一部のデータにエラーがあり、そのエラー処理が抜けていてそれが途中で終了していたことが原因でした。

threadで処理を行う際に、一旦Seriesで処理が正しく通るかを先に確認して実行するべきでした。動作前に `os.system("caffeinate
-u -t 12000 &")` にて見積もり処理時間中にsleepさせないことを実行させれば、問題が解決できました。


CC BY-SA 4.0
2022-10-16T15:05:45.407
91636
2022-10-16T16:22:36.530
2022-10-16T16:22:36.530
3060
54679
91422
answer