diff --git a/findatapy/market/marketdatagenerator.py b/findatapy/market/marketdatagenerator.py index 7be5c3a..c68798b 100644 --- a/findatapy/market/marketdatagenerator.py +++ b/findatapy/market/marketdatagenerator.py @@ -319,6 +319,10 @@ def fetch_group_time_series(self, market_data_request_list): thread_no = DataConstants().market_thread_no[market_data_request_list[0].data_source] if thread_no > 0: + # limit the threads to the number of available CPUs + from multiprocessing import cpu_count + thread_no = min(cpu_count(),thread_no) + pool = Pool(thread_no) # open the market data downloads in their own threads and return the results @@ -417,4 +421,4 @@ def create_category_key(self, market_data_request, ticker=None): return key def create_cache_file_name(self, filename): - return DataConstants().folder_time_series_data + "/" + filename \ No newline at end of file + return DataConstants().folder_time_series_data + "/" + filename