


Bagaimana untuk menetapkan pemasa untuk pelaksanaan tugas berjadual harian di Jawa?
Pemasa Java: Bagaimana untuk menetapkan tugas pelaksanaan berjadual setiap hari?
Dalam pembangunan Java harian, kita sering menghadapi keperluan untuk melaksanakan tugas tertentu secara berkala setiap hari. Contohnya, lakukan tugasan sandaran data pada pukul 1 pagi setiap hari, atau hantar e-mel setiap hari pada pukul 8 malam setiap hari, dsb. Jadi di Jawa, kita boleh menggunakan pemasa untuk mencapai fungsi sedemikian.
Java menyediakan pelbagai kaedah pelaksanaan pemasa Artikel ini akan memperkenalkan dua kaedah berdasarkan Timer dan ScheduledExecutorService untuk menyediakan tugas pelaksanaan berjadual setiap hari, dan menyediakan contoh kod khusus.
1. Gunakan kelas Pemasa untuk melaksanakan tugas berjadual setiap hari
Kelas Pemasa ialah kelas pemasa mudah yang disediakan oleh Java, yang boleh digunakan untuk melaksanakan tugas berjadual. Kita boleh menggunakan kaedah jadual kelas Pemasa untuk menyediakan pelaksanaan berjadual tugas setiap hari dan menggunakan kelas Tarikh untuk menentukan titik masa di mana tugas itu harus dilaksanakan.
Berikut ialah contoh kod yang menggunakan kelas Pemasa untuk melaksanakan tugas berjadual setiap hari:
import java.util.Calendar; import java.util.Date; import java.util.Timer; import java.util.TimerTask; public class DailyTaskWithTimer { public static void main(String[] args) { Timer timer = new Timer(); // 设置任务执行的时间(每天的定时时间) Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.HOUR_OF_DAY, 1); // 设置时 calendar.set(Calendar.MINUTE, 0); // 设置分 calendar.set(Calendar.SECOND, 0); // 设置秒 // 如果当前时间已经过了设定的定时时间,则将定时时间推迟到明天 if (calendar.getTime().before(new Date())) { calendar.add(Calendar.DAY_OF_MONTH, 1); } // 执行任务 timer.schedule(new TimerTask() { @Override public void run() { // TODO: 需要执行的任务逻辑 } }, calendar.getTime(), 24 * 60 * 60 * 1000); // 24小时执行一次 } }
Dalam kod di atas, kami menetapkan masa pelaksanaan tugas melalui kelas Kalendar Perlu diingat bahawa jika masa semasa telah berlalu masa yang ditetapkan, masa yang dijadualkan akan ditunda ke esok. Kemudian gunakan kaedah jadual Pemasa untuk melaksanakan tugas Parameter pertama ialah objek TimerTask, yang mentakrifkan logik tugasan yang perlu dilaksanakan Parameter kedua ialah masa pelaksanaan tugasan, dan parameter ketiga ialah selang masa tugasan di sini Tetapkan untuk melaksanakan setiap 24 jam.
2. Gunakan ScheduledExecutorService untuk melaksanakan pelaksanaan tugas berjadual setiap hari
ScheduledExecutorService ialah pemasa lanjutan yang disediakan oleh Java, yang menyediakan cara yang lebih fleksibel dan boleh dipercayai untuk melaksanakan tugas yang dijadualkan. Kami boleh menggunakan kaedah scheduledExecutorService untuk melaksanakan jadual pelaksanaan tugas setiap hari.
Berikut ialah contoh kod yang menggunakan ScheduledExecutorService untuk melaksanakan pelaksanaan tugas berjadual setiap hari:
import java.util.Calendar; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; public class DailyTaskWithScheduledExecutor { public static void main(String[] args) { ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor(); // 设置任务执行的时间(每天的定时时间) Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.HOUR_OF_DAY, 1); // 设置时 calendar.set(Calendar.MINUTE, 0); // 设置分 calendar.set(Calendar.SECOND, 0); // 设置秒 // 如果当前时间已经过了设定的定时时间,则将定时时间推迟到明天 if (calendar.getTime().before(new Date())) { calendar.add(Calendar.DAY_OF_MONTH, 1); } // 执行任务 executorService.scheduleAtFixedRate(new Runnable() { @Override public void run() { // TODO: 需要执行的任务逻辑 } }, calendar.getTimeInMillis() - System.currentTimeMillis(), 24 * 60 * 60 * 1000, TimeUnit.MILLISECONDS); // 24小时执行一次 // 关闭定时器 //executorService.shutdown(); } }
Dalam kod di atas, kami menetapkan masa pelaksanaan tugas melalui kelas Kalendar Perlu diingat bahawa jika masa semasa telah berlalu masa masa yang ditetapkan, Kemudian menangguhkan masa yang dijadualkan kepada esok. Kemudian gunakan kaedah scheduledExecutorService untuk melaksanakan tugasan Parameter pertama ialah objek Runnable, yang mentakrifkan logik tugasan yang perlu dilaksanakan Parameter kedua ialah masa tunda awal tugasan set masa. Perbezaan dari masa semasa Parameter ketiga ialah selang pelaksanaan tugas, yang ditetapkan untuk dilaksanakan setiap 24 jam Parameter keempat ialah unit masa, yang ditetapkan kepada milisaat. Oleh kerana ScheduledExecutorService ialah kumpulan benang, kami juga perlu menutup kumpulan benang secara manual selepas tugasan dilaksanakan.
Ringkasan:
Artikel ini memperkenalkan dua cara untuk menyediakan tugas pelaksanaan berjadual harian di Java: menggunakan kelas Pemasa dan ScheduledExecutorService. Kedua-dua kaedah dapat merealisasikan fungsi melaksanakan tugas secara teratur setiap hari. Pembangun boleh memilih kaedah yang sesuai untuk menjadualkan tugas berjadual berdasarkan keperluan sebenar.
Atas ialah kandungan terperinci Bagaimana untuk menetapkan pemasa untuk pelaksanaan tugas berjadual harian di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Panduan untuk Square Root di Java. Di sini kita membincangkan cara Square Root berfungsi di Java dengan contoh dan pelaksanaan kodnya masing-masing.

Panduan Nombor Sempurna di Jawa. Di sini kita membincangkan Definisi, Bagaimana untuk menyemak nombor Perfect dalam Java?, contoh dengan pelaksanaan kod.

Panduan untuk Penjana Nombor Rawak di Jawa. Di sini kita membincangkan Fungsi dalam Java dengan contoh dan dua Penjana berbeza dengan contoh lain.

Panduan untuk Nombor Armstrong di Jawa. Di sini kita membincangkan pengenalan kepada nombor Armstrong di java bersama-sama dengan beberapa kod.

Panduan untuk Weka di Jawa. Di sini kita membincangkan Pengenalan, cara menggunakan weka java, jenis platform, dan kelebihan dengan contoh.

Panduan untuk Nombor Smith di Jawa. Di sini kita membincangkan Definisi, Bagaimana untuk menyemak nombor smith di Jawa? contoh dengan pelaksanaan kod.

Dalam artikel ini, kami telah menyimpan Soalan Temuduga Spring Java yang paling banyak ditanya dengan jawapan terperinci mereka. Supaya anda boleh memecahkan temuduga.

Java 8 memperkenalkan API Stream, menyediakan cara yang kuat dan ekspresif untuk memproses koleksi data. Walau bagaimanapun, soalan biasa apabila menggunakan aliran adalah: bagaimana untuk memecahkan atau kembali dari operasi foreach? Gelung tradisional membolehkan gangguan awal atau pulangan, tetapi kaedah Foreach Stream tidak menyokong secara langsung kaedah ini. Artikel ini akan menerangkan sebab -sebab dan meneroka kaedah alternatif untuk melaksanakan penamatan pramatang dalam sistem pemprosesan aliran. Bacaan Lanjut: Penambahbaikan API Java Stream Memahami aliran aliran Kaedah Foreach adalah operasi terminal yang melakukan satu operasi pada setiap elemen dalam aliran. Niat reka bentuknya adalah
