Это старый вопрос, но, возможно, он все еще может быть кому-то полезен, поэтому я постараюсь ответить на него.
Предполагая, что одна и та же таблица таймеров может быть разделена между различными серверами, которые не выполняются в кластере (на самом деле я думаю, что это возможно), появится несколько проблем, связанных с реализацией TimerService, например: предположим, что на каждом сервере развернута одни и те же таймеры, будет ли каждый экземпляр таймера связан с разными записями в этой таблице? Если это так, бизнес-логика будет выполняться более одного раза, когда истекает таймер. В случае, если процесс развертывания генерирует запись только для каждого таймера, правильно ли выполняется TimerService, когда разные TimerServices пытаются одновременно получить доступ / изменить одну и ту же информацию?
С другой стороны, если мотивация этой идеи заключается в достижении некоторой отказоустойчивости, все еще существует проблема, заключающаяся в том, что на всех ваших серверах должны быть установлены одинаковые таймеры, в противном случае служба TimerService может попытаться выполнить таймер, который не развернут на сервере.
Решение для обеспечения высокой доступности уже реализовано и называется HATimerService.
В кластере есть только одна таблица, но отличие состоит в том, что существует уникальный актив TimerService в течение времени, когда узел, который выполняет TimerService, выходит из строя, другой узел становится ведущим, поэтому не существует таймера обмена информацией между узлами. благодаря информации имеется в базе данных