Allows execution of unlimited number of asynchronous tasks while limiting the amount of active concurrent ones.
- There are only two functions (for now):
- asynchelper.TaskExecutor.map(task_generator: Iterable[callable], workers: Union(int, None) = 128)
- task_generator can be any iterable which holds (or generates) coroutines.
- workers is the maximum limit of active tasks concurrently. None for no limit.
- This will keep pushing tasks in the iterable until it's fully consumed.
- asynchelper.TaskExecutor.forever(task: callable, args: Iterable = [], workers: Union(int, None) = 128)
- task is an async funtion to create a couroutine from
- args is an iterable of arguments to pass to task
- workers is the maximum limit of active tasks concurrently. None for no limit
- This will keep pushing the task(*args), running them forever with a limit of workers active tasks at any moment.
asynchelper was written by Mario Nascimento.