annmuor / jnode

jNode FTN Platform public repository

Home Page:http://jnode.in/index.html

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

requires limiting the amount of messages in a bundle

Manjago opened this issue · comments

Требуется ограничение на количество эхопочты в одном файле.

Ситуация:

Товарищ выгребал большое количество записей из ru.military (я сделал рескан с 2010 года, а он не забирал), забирал, забирал и оппаньки

27-01-14 18:53:29 [00000030] FtnTosser Echomail #39115 (ru.military)
packed for 2:5020/828.744
27-01-14 18:53:29 [00000030] FtnTosser Echomail #39116 (ru.military)
packed for 2:5020/828.744
Exception in thread "Thread-4" java.lang.OutOfMemoryError: Java heap space
27-01-14 18:53:34 [00000030] FtnTosser Echomail #39117 (ru.military)
packed for 2:5020/828.744
27-01-14 18:53:34 [00000030] FtnTosser Echomail #39118 (ru.military)
packed for 2:5020/828.744

Я запускался с -Xmx200m - не хватило!

Проблема в том что надо исспользовать limit и offset в запросах orm.
Пример прозрачного ипользования в виде итератора можетe посмотреть у меня
WhereDatabaseLimitIterator.
https://github.com/vkravets/Fido4Java/blob/master/fido-database/src/main/java/org/fidonet/db/WhereDatabaseLimitIterator.java

При итерирование по сообщением, итератор сам решит когда делать запрос
в базу для получения списка/кеша сообщений. IMHO в данном случае будет
очень удобно его использовать при формировании бандла.

Нет, просто нужно было избавиться от троекратного перекладывания сформированных бандлов в памяти. Что я собственно и сделал.

Ага, вроде залечилось -
ru.military rescanned 16859 messages

  • и все успешно