I have a large data extraction job written using Dask, where each task will query one table from a large number of tables across several dozen databases. For each database instance, I would like to limit the number of tasks that connect at one time (i.e. throttling). For example, I may have 100 tasks which connect to database A, 100 for database B, and 100 for database C, etc., and I would like to ensure that no more than 20 tasks are connecting to any database at any given time.
I see that Dask provides constraints based on worker resources (CPU, MEM, GPU, etc.), however the database resources are "global", and therefore are not particular to any Dask worker. Does Dask provide any means of modeling such constraints on task concurrency?