Одно приложение принимает конфиг, делает запрос к БД, получает задачи и пихает их в RabbitMQ.
Второе приложение в нескольких потоках (или инстанцах, можно даже на разном железе) последовательно читает очередь RabbitMQ с задачами, и выполняет их. Тем самым равномерно распределяя задачи по исполнителям.