GlassFish JDO и глобальный объект - PullRequest
1 голос
/ 09 апреля 2010

Я думаю о платформе GlassFish для моего нового приложения.

  1. Мое приложение env. не имеет большого объема данных для обработки, но многие пользователи пишут / читают одни и те же данные

  2. Очень изменчивая часть данных обновляется каждые 200 миллисекунд пользователями diff. Поэтому я хотел бы, чтобы данные этого типа были только в памяти и были доступны всему приложению

Мои вопросы:

  1. Как использовать глобальный объект в памяти с GF? а. использовать объект статической переменной - для этого, я думаю, мне нужно убедиться, что GF работает только на 1 JVM -> как настроить GF для работы на 1 jvm? б. использовать HttpContext - так же, как.
  2. Как мне сохранить данные в БД? а. я могу использовать интерфейс JDO?
  3. Как мне запланировать выполнение задач в будущем (что-то вроде очереди задач в GAE)

спасибо, J.S. Бах

1 Ответ

0 голосов
/ 09 апреля 2010

Как использовать глобальный объект в памяти с GF?

Я бы использовал кэш второго уровня (который вы получаете в JPA 2). Реализация кэша L2 зависит от поставщика JPA.

Как мне сохранить данные в БД? а. я могу использовать интерфейс JDO?

Я бы придерживался JPA 2.

Как мне запланировать выполнение задач в будущем

Я бы использовал расширенный API службы таймера EJB 3.1, который позволяет создавать cron-подобные расписания для запуска методов EJB (просто аннотируйте метод EJB аннотацией @Schedule):

@Stateless 
public class NewsLetterGeneratorBean implements NewsLetterGenerator {
    @Schedule(second="0", minute="0", hour="0", dayOfMonth="1", month="*", year="*") 
    public void generateMonthlyNewsLetter() { 
        ... Code to generate the monthly news letter goes here...
    }
}

Пример выше взят из этой статьи на TheServerSide.

...