Читаем Изучаем Java EE 7 полностью

ПримерВыражение
Каждую среду в полночьdayOfWeek = "Wed"
Каждую среду в полночьsecond = "0", minute = "0", hour = "0", dayOfMonth = "*", month = "*", dayOfWeek = "Wed", year = "*"
Каждый будний день в 6:55minute = "55", hour = "6", dayOfWeek = "Mon — Fri"
Каждый будний день в 6:55 по парижскому времениminute = "55", hour = "6", dayOfWeek = "Mon — Fri", timezone = "Europe/Paris"
Каждую минуту каждого часа каждого дняminute = "*", hour = "*"
Каждую секунду каждой минуты каждого часа каждого дняsecond = "*", minute = "*", hour = "*"
Каждые понедельник и среду через 30 секунд после полудняsecond = "30", hour = "12", dayOfWeek = "Mon, Fri"
Каждые пять минут в течение часаminute = "*/5", hour = "*"
Каждые пять минут в течение часаminute = "0,5,10,15,20,25,30,35,40,45,50,55", hour = "*"
Последний понедельник декабря в 3 часа дняhour = "15", dayOfMonth = "Last Mon", month = "Dec"
За три дня до конца каждого месяца в 1 час дняhour = "13", dayOfMonth = "–3"
Каждый второй час в течение дня, начиная с полудня каждый второй вторник каждого месяцаhour = "12/2", dayOfMonth = "2nd Tue"
Каждые 14 минут в рамках часа в 1 и 2 часа ночиminute = "*/14", hour="1, 2"
Каждые 14 минут в рамках часа в 1 и 2 часа ночиminute = "0,14,28,42,56", our = "1,2"
Каждые 10 секунд в рамках минуты, начиная с 30 секундsecond = "30/10"
Каждые 10 секунд в рамках минуты, начиная с 30 секундsecond = "30,40,50"
<p>Декларативное создание таймера</p>

Таймеры могут быть созданы автоматически в контейнере во время развертывания на основе метаданных. Контейнер создает таймер для каждого метода, аннотированного @javax.ejb.Schedule или @Schedule (или XML-эквивалент в дескрипторе развертывания ejb-jar.xml). По умолчанию каждая аннотация @Schedule соответствует одному постоянному таймеру, но вы можете также определить непостоянные таймеры.

В листинге 8.3 показан компонент StatisticsEJB, в котором определены несколько методов. Метод statisticsItemsSold() создает таймер, который будет вызывать этот метод каждый первый день месяца в 5:30 утра. Метод generateReport() создает два таймера (с помощью аннотации @Schedule): один из них срабатывает каждый день в 2 часа ночи, а другой — каждую среду в 2 часа дня. Метод RefreshCache() создает непостоянный таймер, который будет обновлять кэш каждые десять минут.

Листинг 8.3. Statistics EJB, регистрация четырех таймеров

@Stateless

public class StatisticsEJB {

··@Schedule(dayOfMonth = "1", hour = "5", minute = "30")

··public void statisticsItemsSold() {

····//…

··}

··@ Schedules({

····@ Schedule(hour = "2"),

····@ Schedule(hour = "14", dayOfWeek = "Wed")

··})

··public void generateReport() {

····//…

··}

··@Schedule(minute = "*/10", hour = "*", persistent = false)

··public void refreshCache() {

····//…

··}

}

<p>Программное создание таймера</p>
Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных