Полагаю, я немного опаздываю, отвечая на это, но у нас похожий сценарий с нашим приложением. У нас есть 4 сервера, на которых выполняются задания, некоторые из которых могут работать на нескольких серверах одновременно, а некоторые должны запускаться только один раз. Как говорится в ответе Уилла, вы можете посмотреть на особенности кластеризации Кварц .
Наш подход был немного другим, поскольку у нас было собственное решение, прежде чем мы переключились на Quartz. В наших заданиях используется таблица базы данных, в которой хранятся триггеры cron и другая информация о задании, а затем «блокируется» запись для задания, чтобы ни один из других серверов не мог ее выполнить. Это предотвращает многократное выполнение заданий на серверах и до сих пор было достаточно эффективным.
Надеюсь, это поможет.