Как запустить планировщик в кластерной среде с помощью Spring - PullRequest
0 голосов
/ 18 октября 2018

Электронная почта запускается один раз на сервере с одним узлом.Но он дублирует несколько электронных писем в кластерной среде, потому что работает сервер с несколькими узлами.Но нужно получить один Email в кластерной среде.Как справиться с этим в весеннем приложении.

@Service
public class MailController {

    @Scheduled(cron = "0 20 20 * * *")
    @Transactional("myTraxManger")
    public void sendmail() {
        System.out.println("Sending maill to User");
    }

}

Ответы [ 2 ]

0 голосов
/ 18 октября 2018

Я предлагаю использовать среду, такую ​​как Spring Cloud или Hazelcast , для управления состоянием кластера, и тогда вы можете решить запускать запланированные задачи только на одном из узлов, таких как лидерс выборами Лидерства.

0 голосов
/ 18 октября 2018

Я бы посоветовал использовать решение для очередей, такое как ActiveMQ или kafka, и все кластеры будут помещать сообщения в очередь и асинхронный процесс отправки почты, чтобы получать из этой очереди и отправлять электронную почту.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...