Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > возобновление программы после краха


Автор: implements 19.5.2014, 07:18
Добрый день, есть очень сложная функция которая выполняется долго(может доходить до суток), так вот есть ли возможность делать и сохранять периодически "снимки памяти", или какие стеки, и сохранять их, и если в друг по каким причинам выполнение программы оборвалось, то подсунуть ей последний backup, чтоб заново не начинать обработку.
У кого есть какие мысли, может кто сталкивался с таким.

Автор: LSD 19.5.2014, 10:37
Что делает функция, вычисления, обработка данных?

Автор: implements 19.5.2014, 11:37
Цитата(LSD @  19.5.2014,  10:37 Найти цитируемый пост)
Что делает функция, вычисления, обработка данных? 

вычисление 
подается множество значений, из них получаем другое множество

Автор: LSD 19.5.2014, 12:47
Я бы смотрел в сторону http://doc.akka.io/docs/akka/snapshot/scala/persistence.html.

Автор: JDmitry 21.5.2014, 12:25
Конечно можно и persistent очереди использовать, но самый оптимальный вариант - разбить задачу на много подзадач и сначала сохранять результат этих подзадач в базе. А потом когда все просчитаются - отдать просчет промежуточных данных большой задаче.
Польза такого подхода в том, что при падении системы вы можете получить список необработанных подзадач и запустить обработку необработанных не пересчитывая те, что обработались корректно.

Автор: LSD 21.5.2014, 12:54
Цитата(JDmitry @  21.5.2014,  13:25 Найти цитируемый пост)
Конечно можно и persistent очереди использовать, но самый оптимальный вариант - разбить задачу на много подзадач и сначала сохранять результат этих подзадач в базе. А потом когда все просчитаются - отдать просчет промежуточных данных большой задаче.

То что ты описал и реализуется Akka.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)