Tugas waktu umumnya ada dalam proyek tingkat perusahaan menengah dan besar. Untuk mengurangi tekanan pada server dan database, periode waktu sering digunakan untuk menyelesaikan logika bisnis tertentu. Yang paling umum adalah bahwa sistem layanan keuangan mendorong panggilan balik. Secara umum, pesanan sistem pembayaran akan terus melakukan panggilan balik ketika tidak menerima panggilan balik yang berhasil dan mengembalikan konten. Panggilan balik semacam ini umumnya diselesaikan dengan tugas -tugas waktunya. Ada juga generasi laporan. Kami biasanya menyelesaikan operasi ini ketika jumlah kunjungan pelanggan terlalu kecil, yang sering kali di pagi hari. Pada saat ini, kita juga dapat menggunakan tugas -tugas waktunya untuk menyelesaikan logika. Springboot memiliki tugas waktu bawaan untuk kami, dan kami hanya perlu satu anotasi untuk memungkinkan waktu untuk kami gunakan.
Dalam pengembangan, tugas waktu adalah fungsi umum. Mengembangkan tugas waktu di bawah boot musim semi sebenarnya sangat sederhana. Kode spesifiknya adalah sebagai berikut:
1. Mengkonfigurasi paket ketergantungan pom.xml
Karena repositori Maven default sering tidak dapat diakses, gambar repositori Maven Alibaba Cloud digunakan di sini.
<? Xml Version = "1.0" encoding = "UTF-8"?> <Project xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.w3.org/2001/xmlschema xsi: schemalocation = "http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <ModelVersion> 4.0.0 </ModelVersion> <groupdid> com.example </groupid </groupid> </ModelVersion> <groupdid> Com.example </Groupcing </groupid> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>spring-boot-scheduled</name> <description>Demo project for Spring Boot</description> <!-- Alibaba Cloud maven repository--> <repositories> <repository> <id>public</id> <name>aliyun nexus</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <releases> <enabled>true</enabled> </releases> </repository> </repositories> <pluginRepository> <pluginRepository> <id>public</id> <name>aliyun nexus</name> <rerl> http://maven.aliyun.com/nexus/content/groups/public/ </ruml> <seleases> <denabled> true </denabled> </seleases> <snapshotory> <denably> </enabled> </snapshots> </pluginrepository> <inabled> </enabled> </snapshots> </pluginrotory> <denabled> </enabled> </snapshots> </pluginrotory> <denably> </enabled> </snapshots> </pluginrotory> <denably> </enabled> </snapshots> </pluginrotory> <groupId> org.springframework.boot </groupid> <ArtifactId> Spring-boot-starter-parent </arttifactid> <version> 1.4.5.release </versi> <proyative/> <!-Lookup Parent dari Repository-> </Parent> <versies> <Project.build.sourceCoding-> </Parent- Properties> <proyform.build. <Project.Reporting.OutputEncoding> UTF-8 </project.reporting.outputEncoding> <Java.Version> 1.8 </java.version> </Properties> </Dependencies> <Ruppendency> <GroupId org.springframework.BOOT </groupid> <Artifactid> <dependency> <GroupId> org.projectlombok </groupid> <ArtifactId> lombok </artifactid> <pilihan> true </portsional> </dependency> <dependency> <roupidid> org.springframework. </dependencies> <build> <lugin> <lugin> <GroupId> org.springframework.boot </groupid> <ArTifactId> spring-boot-maven-plugin </t Artifactid> </lugin> </plugin> </bangun> </proyek>
2. Sesuaikan skenario tugas
Tugas waktunya diimplementasikan, memberikan skenario seperti siklus tetap, interval keterlambatan siklus tetap dan titik waktu yang diformulasikan. Gunakan anotasi @scheduled untuk anotasi.
ExampleTimer.java
package com.example;import java.text.SimpleDateFormat;import java.util.Date;import org.springframework.scheduling.annotation.Scheduled;import org.springframework.stereotype.Component;@Componentpublic class ExampleTimer {SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");@Scheduled(fixedRate = 10000) public void timerRate() {System.out.println(dateFormat.format(new Date()));}//The first time delays execution by 1 second, and then execute @Scheduled(initialDelay = 1000, fixedDelay = 2000) public void timerInit() {System.out.println ("init:"+ dateFormat.format (new date ()));} // eksekusi @scheduled (cron = "50 16 20 *?") Public void timercron () {System.out.println ("saat ini:"+ dateFormat.Format (Tanggal baru ()));3. Mulai aplikasi
Untuk memulai program, Anda perlu menambahkan anotasi @EnablesCheduling.
SpringbootscheduledApplication.java
Paket com.example; impor org.springframework.boot.springapplication; impor org.springframework.boot.autoconfigure.springbootApplication; Impor org.springframework.scheduling.annotation.enablesCheduling;@springpramapplication static void main (string [] args) {springApplication.run (springbootcheduledApplication.class, args);}}4. Hasil output
20:16:27init : 20:16:28init : 20:16:30init : 20:16:32init : 20:16:34init : 20:16:3620:16:37init : 20:16:38init : 20:16:40init : 20:16:42init : 20:16:44init : 20:16:4620:16:47init : 20:16:48current time : 20: 16: 50init: 20: 16: 50init: 20: 16: 52init: 20:16:54
Meringkaskan
Di atas adalah semua konten dari artikel ini tentang Springboot menerapkan kode tugas terjadwal melalui dijadwalkan, dan saya harap ini akan membantu semua orang. Teman yang tertarik dapat terus merujuk ke situs ini:
Penjelasan terperinci tentang instance pengaturan domain lintas boot musim semi
Mengenal Spring Boot dengan cepat
Diskusi singkat tentang keunggulan Springboot ke Spring
Jika ada kekurangan, silakan tinggalkan pesan untuk menunjukkannya. Terima kasih teman atas dukungan Anda untuk situs ini!