Будет ли Java-код завершен в середине, если сервер внезапно не работает - PullRequest
0 голосов
/ 21 октября 2019

Допустим, у меня есть java-функция с 1000 строками кодов, и она развернута в сети.

Будет ли вероятность того, что код будет запущен и завершен в строке X из 1000 строк, если ПК илиWeblogic внезапно завершает работу (т. Е. Принудительно завершает работу)?

Если да, есть ли какой-нибудь возможный способ «запустить» оставшуюся часть кода (от X + 1 до 1000) при возобновлении работы сервера.

Спасибо.

Ответы [ 2 ]

1 голос
/ 21 октября 2019

Что бы ни делал ваш код, он может быть прерван в любой момент из-за внешнего сбоя. Сам JRE не имеет гражданства;нет автоматического способа возобновления в определенный момент. Сам код должен быть «перезагруженным». То есть он должен сохранять состояние для некоторого внешнего, долговременного сервиса. Если этот код модифицирует внешние ресурсы (вызов веб-службы, базы данных, ...), он также должен каким-то образом синхронизировать свое сохраненное состояние с внешним ресурсом при перезапуске.

RabbitMQ может помочь с некоторыми аспектами - этоГарантированная доставка сообщения автобусом. Это может обеспечить доставку сообщений на внешний ресурс. Он также может синхронизировать между несколькими запущенными экземплярами вашего кода, если вы хотите распределенное приложение с поддержкой кластеров, что сложно сделать.

1 голос
/ 21 октября 2019

Будет ли вероятность того, что код будет запущен и завершен в строке X из 1000 строк, если ПК или Weblogic внезапно завершат работу (то есть принудительное отключение)?

Да.

Если да, есть ли какой-нибудь возможный способ «запустить» оставшуюся часть кода (от X + 1 до 1000) при возобновлении работы сервера.

Вы должны будете реализовать такой механизм, и тогда ему нужно будет «сбросить» до некоторой точки перед X и затем возобновить транзакцию. Хотя ваша реализация может быть темой Rabbit MQ с надежными сообщениями. Более типичная конфигурация (по моему опыту) включает запуск нескольких серверов Weblogic в кластере и переключение на другой член этого кластера в этом сценарии (и в сочетании с длительными очередями).

...