Безопасен ли поток обслуживания таймера EJB? - PullRequest
2 голосов
/ 22 ноября 2011

Безопасен ли поток службы таймера EJB? Когда многопоточность вызывает создание timerservice, а затем использует свой собственный timerservice для создания таймер. Как контейнер jboss ставит в очередь эти события и запускает таймер? Спасибо

1 Ответ

0 голосов
/ 15 июня 2018

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

В многосерверной среде, если вы не хотите, чтобы одни и те же таймеры EJB запускались одновременно в одно и то же запланированное время, можно сохранить их в общем ресурсе (например, в базе данных) и упорядоченно запускать их на некоторых серверов без помех для других.

Основной подход, по-видимому, заключается в определении постоянных таймеров EJB и источника данных с изоляцией сериализуемой транзакции , поэтому только один сервер одновременно сможет обновлять таблицу управления расписанием таймеров. Исходя из этого, я вижу два возможных подхода:

  1. Служба таймера включила серверы JBoss, настроенные для работы в кластере, поэтому таймеры EJB будут запускаться только на одном узле за раз (т. Е. Однократное выполнение таймера). [1]
  2. В некластеризованной среде, возможно, вы могли бы выбрать сервер, на котором было разрешено выполнение таймера EJB, и отключить это выполнение на других серверах.

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

ссылка:

[1]: JBoss - Мастерство босса - Создание кластерных таймеров EJB 3
- http://www.mastertheboss.com/jboss-server/wildfly-8/creating-clustered-ejb-3-timers

[2]: JBoss - Mastering the Boss - Настройка хранилища пакетных заданий WildFly
- http://www.mastertheboss.com/jboss-server/wildfly-8/configuring-wildfly-batch-job-repository

[3]: StackOverFlow - Как отключить службу таймера в Wildfly 10?

...