GlassFish JDO и глобальный объект
Я думаю о платформе GlassFish для моего нового приложения.
Мое приложение env. не имеет большого объема данных для обработки, но многие пользователи пишут / читают одни и те же данные
Очень изменчивая часть данных обновляется каждые 200 миллисекунд пользователями diff. Поэтому я хотел бы, чтобы данные этого типа были только в памяти и были доступны для всего приложения.
Мои вопросы:
- Как я могу использовать глобальный объект в памяти с GF? а. использовать объект статической переменной - для этого, я думаю, мне нужно убедиться, что GF работает только на 1 JVM -> как настроить GF для работы на 1 jvm? б. использовать HttpContext - так же, как.
- Как мне сохранить данные в БД? а. я могу использовать интерфейс JDO?
- Как мне запланировать выполнение задач в будущем (что-то вроде очереди задач в GAE)
спасибо И.С. Бах
1 ответ
Как я могу использовать глобальный объект в памяти с 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.