Su idea inicial es absolutamente factible. Simplemente inicie 10 subprocesos de trabajo que esperan la entrada en una y la misma cola. Luego, su proceso de correo coloca las direcciones URL en esta cola. El equilibrio de carga ocurrirá automáticamente.
Si sus enlaces SQL son seguros para subprocesos, puede hacer las cosas INSERTAR o ACTUALIZAR en los subprocesos de trabajo. De lo contrario, agregaría un hilo más para las cosas de SQL, esperando la entrada en una cola diferente. Luego, sus subprocesos de trabajo pondrían la consulta en esta cola y el subproceso SQL la ejecutaría.
Si busca en Google "cola de subprocesos de trabajo de Python", encontrará algunos ejemplos.