in azure_functions_worker/dispatcher.py [0:0]
def _get_sync_tp_max_workers() -> Optional[int]:
def tp_max_workers_validator(value: str) -> bool:
try:
int_value = int(value)
except ValueError:
logger.warning('%s must be an integer',
PYTHON_THREADPOOL_THREAD_COUNT)
return False
if int_value < PYTHON_THREADPOOL_THREAD_COUNT_MIN:
logger.warning(
'%s must be set to a value between %s and sys.maxint. '
'Reverting to default value for max_workers',
PYTHON_THREADPOOL_THREAD_COUNT,
PYTHON_THREADPOOL_THREAD_COUNT_MIN)
return False
return True
# Starting Python 3.9, worker won't be putting a limit on the
# max_workers count in the created threadpool.
default_value = None if sys.version_info.minor >= 9 \
else f'{PYTHON_THREADPOOL_THREAD_COUNT_DEFAULT}'
max_workers = get_app_setting(setting=PYTHON_THREADPOOL_THREAD_COUNT,
default_value=default_value,
validator=tp_max_workers_validator)
if sys.version_info.minor <= 7:
max_workers = min(int(max_workers),
PYTHON_THREADPOOL_THREAD_COUNT_MAX_37)
# We can box the app setting as int for earlier python versions.
return int(max_workers) if max_workers else None