Вызывайте функцию периодически в Java

Я нахожу, что существует много ограничений к CSS, которые просто, кажется, подсказывают, что разработчики спецификации не делают веб-сайты для жизни.

HTML-таблицы Использования, если Вы не можете сделать этого легкий в CSS.

Однако некоторые платформы действительно помогают и это всегда более хороший сделать в CSS, если можно управлять им.

6
задан JJJ 3 June 2012 в 15:56
поделиться

7 ответов

Чтобы вызывать что-либо периодически, см. TimerTask

10
ответ дан 8 December 2019 в 03:39
поделиться

Если вам нужно что-то более надежное, вы можете использовать Quartz

Что касается crontab - это инструмент планирования на машинах Unix.

5
ответ дан 8 December 2019 в 03:39
поделиться

Для вызова методов, когда сервер имеет высокую нагрузку, у вас есть как минимум два возможных подхода. Ваш сервер приложений может иметь ловушки управления, которые позволят вам отслеживать его поведение и выполнять прогромматические действия. В качестве альтернативы у вас есть возможность мониторинга системы (например, Tivoli или OpenView), и она генерирует «события», не должно быть слишком сложно доставить такие события, как (например) сообщения JMS, и чтобы ваш сервер их принимал.

Однако , возможно, вы захотите подробнее объяснить, чего вы хотите достичь. Адаптивное поведение приложения может быть довольно непростым делом.

4
ответ дан 8 December 2019 в 03:39
поделиться

нам нужно периодически запускать одну функцию в веб-приложении Java

(1) Посмотрите в дескрипторе развертывания (web.xml), определите прослушиватель для запуска во время запуска.

Как вызвать функцию некоторого класса периодически?

(2) Создайте Таймер в слушателе.

Есть ли способ вызова функции когда произошло какое-то событие, например, высокая нагрузка на сервере и т. д.

(3) и запустить несколько потоков для проверки системных условий, доступных с Java, даже запустить системные программы (время безотказной работы и т. д.) и проанализировать вывод.

crontab может быть способом, но выполнение Java запустит другую JVM, и это действительно самая горячая вещь в контейнерах сервлетов: все они выполняются в одной JVM.

2
ответ дан 8 December 2019 в 03:39
поделиться

Не забывайте о java.util.concurrent - в нем много классов для планирования, например ScheduledThreadPoolExecutor, если вам нужно больше, чем простой таймер.

http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/package-summary.html

Также существует обратный порт для Java 1.4: http://backport-jsr166.sourceforge.net .

2
ответ дан 8 December 2019 в 03:39
поделиться

Как периодически вызывать функцию некоторого класса?

Есть несколько решений: таймер , реализация cron в Java, например cron4j , Quartz или даже EJB Timer API . Выбор того или другого сильно зависит от контекста: типа приложения, используемых технологий, количества заданий и т. Д.

Есть ли способ вызвать функцию, когда произошло какое-то событие, например, высокая нагрузка на сервер и т. Д.

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

или даже EJB Timer API . Выбор того или другого сильно зависит от контекста: типа приложения, используемых технологий, количества заданий и т. Д.

Есть ли способ вызвать функцию, когда произошло какое-то событие, например, высокая нагрузка на сервер и т. Д.

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

или даже EJB Timer API . Выбор того или другого сильно зависит от контекста: типа приложения, используемых технологий, количества заданий и т. Д.

Есть ли способ вызова функции, когда происходит какое-то событие, например, высокая нагрузка на сервер и т. Д.

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

1
ответ дан 8 December 2019 в 03:39
поделиться

Если вы хотите запускать что-то периодически, не делайте этого на веб-сервере . Это было бы очень неправильным подходом, ИМО. Лучше использовать cron , если вы работаете в Unix-подобной операционной системе. Серверы Windows предлагают аналогичные функции.

2
ответ дан 8 December 2019 в 03:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: