Der Java-Test für geplante Aufgaben erbt TimerTask
Stellen Sie zunächst den Java-Timer (java.util.Timer) vor, der die Funktion hat, geplante Aufgaben regelmäßig auszuführen. Durch Festlegen des Intervalls des Timers wird er automatisch nach diesem Intervall ausgeführt Vorab geplante Aufgaben (java.util. TimerTask)
Zum Beispiel: Führen Sie die Aufgabe timer.schedule(TimerTask, 0, 60 * 60 * 1000) stündlich aus.
Der erste Parameter von
der Schedule()-Methode ist die Aufgabe, die ausgeführt werden muss. Der Typ dieser Klasse ist java.util.TimerTask. Der zweite Parameter von
ist die Wartezeit vor der Aufgabe, wobei 0 kein Warten bedeutet, der dritte Parameter ist die Intervallzeit in Millisekunden.
/** * 定时任务测试类 * @author admin * */ public class TimerScheduleDemo extends TimerTask { public TimerScheduleDemo() { } @Override public void run() { print(); } public static void main(String[] args) { Timer timer = new Timer(); long delay1 = 1 * 1000; long period1 = 1000; // 从现在开始 1*1000 秒钟之后,每隔 1 秒钟执行一次 timer.schedule(new TimerScheduleDemo(), delay1, period1); /*long delay2 = 2 * 1000; long period2 = 2000; // 从现在开始 2 秒钟之后,每隔 2 秒钟执行一次 timer.schedule(new TimerScheduleDemo(), delay2, period2); */ } public static void print(){ System.out.println("method start"); } }
Aber:
Denn wir hoffen, dass der Timer beim Start des Webprojekts automatisch mit der Zeitmessung beginnen kann, sodass während der gesamten Lebensdauer des Webprojekts Aufgaben regelmäßig ausgeführt werden. Beginnen Sie also Die Timer-Klasse kann keine allgemeine Klasse sein, um den Timer zu starten, indem Sie ihn in der Konfigurationsdatei konfigurieren. Lassen Sie ihn beim Start des Projekts automatisch laden und ausführen, und seine Überlebenszeit beträgt das gesamte Web Projektleben.
Hauptgeschäftscode der Task-Klasse
/** * 定时器任务类:即调度任务类 * @author admin */ public class DelFileTask extends TimerTask{ private static boolean isRunning = false; private ServletContext context = null; public DelFileTask() { super(); } public DelFileTask(ServletContext context) { this.context = context; } @Override public void run() { if (!isRunning) { context.log("开始执行指定任务"); /** * 自己的业务代码 */ isRunning = false; context.log("指定任务执行结束"); } else { context.log("上一次任务执行还未结束"); } } }
Diese Klasse erbt hauptsächlich TimerTask und implementiert ihre Ausführungsmethode
Das Folgende ist die Überwachungsklasse, die den Start des Servers überwacht und hinzufügt Aufgabe Gehe zum Aufgabenstapel
/** * servlet监听器:监听服务启动时执行调度任务 * @author admin * */ public class ContextListener implements ServletContextListener{ public ContextListener() { } private java.util.Timer timer = null; /** * 初始化定时器 * web 程序运行时候自动加载 */ @Override public void contextInitialized(ServletContextEvent arg0) { /** * 设置一个定时器 */ timer = new java.util.Timer(true); arg0.getServletContext().log("定时器已启动"); /** * 定时器到指定的时间时,执行某个操作(如某个类,或方法) */ //设置执行时间 Calendar calendar =Calendar.getInstance(); int year = calendar.get(Calendar.YEAR); int month = calendar.get(Calendar.MONTH); int day =calendar.get(Calendar.DAY_OF_MONTH);//每天 //定制每天的16:10:00执行, calendar.set(year, month, day, 16, 10, 00); Date date = calendar.getTime(); System.out.println(date); int period = 1000; //每天的date时刻执行task,每隔persion 时间重复执行 timer.schedule(new DelFileTask(arg0.getServletContext()), date, period); //在 指定的date时刻执行task, 仅执行一次 //timer.schedule(new DelFileTask(arg0.getServletContext()), date); arg0.getServletContext().log("已经添加任务调度表"); } /** * 销毁 */ @Override public void contextDestroyed(ServletContextEvent arg0){ timer.cancel(); arg0.getServletContext().log("定时器销毁"); } }
Diese Klasse wird hauptsächlich verwendet, um einen Scheduler einzurichten und ihn Aufgaben gemäß bestimmten Anforderungen ausführen zu lassen.
Die Task-Listener-Klasse wurde implementiert. >
Verwandte Empfehlungen:Beispiele für die Verwendung von Timern und geplanten Aufgaben
So verwenden Sie den Java-Timer Timer-Java-Tutorial
Das obige ist der detaillierte Inhalt vonDer Java-Test für geplante Aufgaben erbt TimerTask. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Leitfaden zur Quadratwurzel in Java. Hier diskutieren wir anhand eines Beispiels und seiner Code-Implementierung, wie Quadratwurzel in Java funktioniert.

Leitfaden zur perfekten Zahl in Java. Hier besprechen wir die Definition, Wie prüft man die perfekte Zahl in Java?, Beispiele mit Code-Implementierung.

Leitfaden zur Armstrong-Zahl in Java. Hier besprechen wir eine Einführung in die Armstrong-Zahl in Java zusammen mit einem Teil des Codes.

Leitfaden zum Zufallszahlengenerator in Java. Hier besprechen wir Funktionen in Java anhand von Beispielen und zwei verschiedene Generatoren anhand ihrer Beispiele.

Leitfaden für Weka in Java. Hier besprechen wir die Einführung, die Verwendung von Weka Java, die Art der Plattform und die Vorteile anhand von Beispielen.

Leitfaden zur Smith-Zahl in Java. Hier besprechen wir die Definition: Wie überprüft man die Smith-Nummer in Java? Beispiel mit Code-Implementierung.

In diesem Artikel haben wir die am häufigsten gestellten Fragen zu Java Spring-Interviews mit ihren detaillierten Antworten zusammengestellt. Damit Sie das Interview knacken können.

Java 8 führt die Stream -API ein und bietet eine leistungsstarke und ausdrucksstarke Möglichkeit, Datensammlungen zu verarbeiten. Eine häufige Frage bei der Verwendung von Stream lautet jedoch: Wie kann man von einem Foreach -Betrieb brechen oder zurückkehren? Herkömmliche Schleifen ermöglichen eine frühzeitige Unterbrechung oder Rückkehr, aber die Stream's foreach -Methode unterstützt diese Methode nicht direkt. In diesem Artikel werden die Gründe erläutert und alternative Methoden zur Implementierung vorzeitiger Beendigung in Strahlverarbeitungssystemen erforscht. Weitere Lektüre: Java Stream API -Verbesserungen Stream foreach verstehen Die Foreach -Methode ist ein Terminalbetrieb, der einen Vorgang für jedes Element im Stream ausführt. Seine Designabsicht ist
