Вопрос

Как я могу запускать задачу ежедневно в указанное время (скажем, в 11: 00 утра), используя java.util.Timer?Я использую JDK 1.4.2, я знаю, что он старый, но это то, что требуется проекту.

Это было полезно?

Решение

Quartz - наиболее известное решение для планирования процессов в средах Java, но у вас есть множество вариантов.Проверьте этот список:

Кварц это система планирования заданий с открытым исходным кодом, которая может быть интегрирована с практически любым приложением J2EE или J2SE или использоваться параллельно с ним.Quartz можно использовать для создания простых или сложных расписаний.

Jcrontab предназначен для расширения и интеграции с любым проектом.Считывает и сохраняет выполняемые задачи в файле, базе данных или EJB и предоставляет веб-интерфейс и базовый графический интерфейс swing.

Планировщик Essiembre J2EE это простой механизм планирования задач для приложений J2EE.Эту библиотеку можно рассматривать как оболочку вокруг классов Timer и TimerTask, найденных в стандартном Java API.Конфигурация выполняемых задач и их периодичность основаны на XML.

cron4j ( крон4j ) это планировщик для платформы Java 2, который очень похож на демон cron UNIX.

Странная Работацель состоит в том, чтобы обеспечить некоторый порядок и наглядность для всех пакетных файлов и заданий cron, которые связывают критические бизнес-процессы предприятия воедино.

Планировщик точек опоры предоставляет услугу планировщика.Он основан на TurbineScheduler, поставляемом с турбиной, но все старые компоненты были удалены.В настоящее время выполнен ТОЛЬКО непостоянный планировщик.Он загружает запланированные задания из XML-файла конфигурации компонента.

Gos4j ( Гос4j ) -Целенаправленное планирование для Java - это способ организации приоритетов обработки на основе целей.

Планировщик заданий представляет собой пакетную программу, работающую как демон, и может управляться с помощью графического пользовательского интерфейса.Планировщик заданий использует конфигурацию XML для запланированных программ, сценариев, а также для определения времени и частоты обработки задач.Доступен API, который передает управление событиями и ведение журнала в ваши задания.

ЖДРинг это облегченная библиотека планирования Java, которая проста и мала, но по-прежнему поддерживает сигналы тревоги с заданными интервалами, как разовые события или по сложным расписаниям с полным управлением, подобным cron.

jBatchEngine - двигатель jBatchEngine это средство диспетчеризации пакетных заданий, написанное на Java.В отличие от планировщиков, управляемых временем, таких как Cron, jBatchEngine управляется событиями.

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

Супер с СуперШедулятор и СуперВратчдог это планировщик заданий Java с богатым графическим интерфейсом для всех приложений.Это нейтральная платформа.Особенно хорошо быть планировщиком заданий для Linux и Solaris.Он предоставляет превосходный набор функциональных возможностей планировщика Microsoft Windows.Он обеспечивает планирование, инициируемое событиями.Он может планировать задачи в распределенной среде.Задача будет выполнена один и только один раз среди всех машин в сети.Все задачи регулируются в праздничные дни.Даже если каждое задание находится в режиме ОЖИДАНИЯ, история будет хорошим подспорьем для важных задач.Он поддерживает интернационализацию.

Источник: Планировщики заданий с открытым исходным кодом на Java

Другие советы

Посмотрите на TimerTask и Timer - оба находятся в этой версии JDK.

Timer :
public void schedule(TimerTask task, Date firstTime, long period)
public void scheduleAtFixedRate(TimerTask task, Date firstTime, long period)

Установите его для запуска на первое желаемое свидание, а затем укажите количество миллисекунд в один день в качестве вашей задержки.

Возможно ли для вас использовать библиотеку, такую как cron4j ( крон4j )?Это намного облегчит вашу работу!

  • Таймеры Java могут запускать произвольное задание с интервалами, заранее установленными временами и т.д.Ит.п.
  • Кварц библиотека
  • Если вы действительно хотите быть откровенным в этом, оберните это в сценарий оболочки и вставьте в cron.

Вы должны использовать Кварц

Однако я никогда не знал, кто запускает Quartz в первую очередь.

Если у вас есть сервер приложений или аналогичный артефакт, вы можете настроить там задание Quartz и заставить его выполнять вашу задачу в заданное время.

Может быть, этот недавний пост поможет вам:

Приостановит ли это мой Java-поток на минуту?

Мой ответ на этот вопрос заключается в использовании встроенной в Java реализации, основанной на java.util.Классах Time и java.util.TimerTask:Приостановит ли это мой Java-поток на минуту?

Или вы можете использовать службу crontab для платформ * nix (доступна и для платформ Windows).Это самый простой и легковесный способ периодического запуска автономного задания.

[]'ы,

И Прошлое

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top