cari
RumahJavajavaTutorialBagaimana untuk menyepadukan tugas berjadual dan tugas e-mel dalam SpringBoot

定时任务

项目开发中经常需要执行一些定时任务,比如需要在每天凌晨时候,分析一次前一天的日志信息。Spring为我们提供了异步执行任务调度的方式

提供 :

  • TaskExecutor 任务调度这

  • TaskScheduler 任务执行者 两个注解:

  • @EnableScheduling// 开启定时任务功能

@Scheduled //表示什么时候执行

cron表达式:

字段 允许值 允许的特殊字符
秒 0-59 - * /
分 0-59 - * /
小时 0-23 - * /
日期 1-12或JAN-DEC - * ? / L W C 月份 0-59 - * /
星期 1-7或SUN-SAT - * ? / L C #

cron表达式例子:

  (0)0/20 * * * * ?   表示每20秒 调整任务

  (1)0 0 2 1 * ?   表示在每月的1日的凌晨2点调整任务

  (2)0 15 10 ? * MON-FRI   表示周一到周五每天上午10:15执行作业

  (3)0 15 10 ? 6L 2002-2006   表示2002-2006年的每个月的最后一个星期五上午10:15执行作

  (4)0 0 10,14,16 * * ?   每天上午10点,下午2点,4点 

  (5)0 0/30 9-17 * * ?   朝九晚五工作时间内每半小时 

  (6)0 0 12 ? * WED    表示每个星期三中午12点 

  (7)0 0 12 * * ?   每天中午12点触发 

  (8)0 15 10 ? * *    每天上午10:15触发 

  (9)0 15 10 * * ?     每天上午10:15触发 

  (10)0 15 10 * * ? *    每天上午10:15触发 

  (11)0 15 10 * * ? 2005    2005年的每天上午10:15触发 

  (12)0 * 14 * * ?     在每天下午2点到下午2:59期间的每1分钟触发 

  (13)0 0/5 14 * * ?    在每天下午2点到下午2:55期间的每5分钟触发 

  (14)0 0/5 14,18 * * ?     在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发 

  (15)0 0-5 14 * * ?    在每天下午2点到下午2:05期间的每1分钟触发 

  (16)0 10,44 14 ? 3 WED    每年三月的星期三的下午2:10和2:44触发 

  (17)0 15 10 ? * MON-FRI    周一至周五的上午10:15触发 

  (18)0 15 10 15 * ?    每月15日上午10:15触发 

  (19)0 15 10 L * ?    每月最后一日的上午10:15触发 

  (20)0 15 10 ? * 6L    每月的最后一个星期五上午10:15触发 

  (21)0 15 10 ? * 6L 2002-2005   2002年至2005年的每月的最后一个星期五上午10:15触发 

  (22)0 15 10 ? * 6#3   每月的第三个星期五上午10:15触发

测试

@Service
public class task {


    // 秒  分 时 日 月 周几
    @Scheduled(cron = "0 17 18 * * ?")
    public void test(){
        System.out.println("这个是定时任务,现在的时间是:"+new Date());
    }
}

邮件任务

邮件发送需要引入spring-boot-starter-mail

        <dependency>
            <groupid>org.springframework.boot</groupid>
            <artifactid>spring-boot-starter-mail</artifactid>
        </dependency>

定义MailProperties内容,配置在application.yml中

spring.mail.username=wangmeng@XXX.com
spring.mail.password=EXHFOVQXOTZUKWSL
spring.mail.host=smtp.163.com


#开启加密验证
spring.mail.properties.mail.smtp.ssl.enable=true

测试邮件发送

    @Autowired
    private JavaMailSenderImpl javaMailSender;
    @Test
    void contextLoads() {
        SimpleMailMessage simpleMailMessage=new SimpleMailMessage();

        simpleMailMessage.setSubject("这是SpringBoot集成mail,发送的第一个邮件");

        simpleMailMessage.setText("你好,你好,你好,你好!");
        simpleMailMessage.setTo("mengwangq@XXXX.com","jhwucc@XXX.com");
        simpleMailMessage.setFrom("wangmeng@XXX.com");

        javaMailSender.send(simpleMailMessage);
    }

    @Test
    void Test() throws Exception {
        MimeMessage mimeMessage =
                javaMailSender.createMimeMessage();
        MimeMessageHelper helperMessage = new MimeMessageHelper(mimeMessage, true,"utf-8");
        helperMessage.setSubject("今日工作进展");
        helperMessage.setText("<p>今日工作汇报,详情请查看附件</p>");

        // 附件
        helperMessage.addAttachment("今日工作进展.docx", new File("D:\\usr\\local\\工作日报.docx"));



        helperMessage.setTo("mengwangq@XXXX.com");
        helperMessage.setFrom("wangmeng@XXXXX.com");


        javaMailSender.send(mimeMessage);
    }

Atas ialah kandungan terperinci Bagaimana untuk menyepadukan tugas berjadual dan tugas e-mel dalam SpringBoot. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Artikel ini dikembalikan pada:亿速云. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
Bagaimanakah JVM mengendalikan perbezaan dalam sistem operasi API?Bagaimanakah JVM mengendalikan perbezaan dalam sistem operasi API?Apr 27, 2025 am 12:18 AM

JVM Mengendalikan Perbezaan API Sistem Operasi melalui JavanativeInterface (JNI) dan Perpustakaan Standard Java: 1. JNI membenarkan kod Java untuk memanggil kod tempatan dan terus berinteraksi dengan API Sistem Operasi. 2. Perpustakaan Standard Java menyediakan API bersatu, yang dipetakan secara dalaman kepada API sistem operasi yang berbeza untuk memastikan kod tersebut berjalan di seluruh platform.

Bagaimanakah modulariti yang diperkenalkan dalam kemerdekaan platform kesan Java 9?Bagaimanakah modulariti yang diperkenalkan dalam kemerdekaan platform kesan Java 9?Apr 27, 2025 am 12:15 AM

modularitydoesnotdirectlyaffectjava'splatformindected.java'splatformindectenceismaintybythejvm, butmodularityinfluencesapplicationstructureandManagement, indirectlyimpactingplatformindect.1) DeploymentandmentandmentweMbecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecombecom

Apakah bytecode, dan bagaimanakah ia berkaitan dengan kemerdekaan platform Java?Apakah bytecode, dan bagaimanakah ia berkaitan dengan kemerdekaan platform Java?Apr 27, 2025 am 12:06 AM

BytecodeinjavaistheintermediaterepresentationThateNableSplatformindant.1) javacodeiscompiledintobytecodestoredin.classfiles.2)

Mengapa Java dianggap sebagai bahasa bebas platform?Mengapa Java dianggap sebagai bahasa bebas platform?Apr 27, 2025 am 12:03 AM

JavaachievesplatformindependencethroughavavaVirtualMachine (JVM), yang mana -yexeCuteSbytecodeonanydeviceWIjvm.1)

Bagaimanakah antara muka pengguna grafik (GUI) menyajikan cabaran untuk kemerdekaan platform di Java?Bagaimanakah antara muka pengguna grafik (GUI) menyajikan cabaran untuk kemerdekaan platform di Java?Apr 27, 2025 am 12:02 AM

Kemerdekaan platform dalam pembangunan Javagui menghadapi cabaran, tetapi boleh ditangani dengan menggunakan swing, javafx, penampilan penyatuan, pengoptimuman prestasi, perpustakaan pihak ketiga dan ujian silang platform. Pembangunan Javagui bergantung pada AWT dan Swing, yang bertujuan untuk menyediakan konsistensi rentas platform, tetapi kesan sebenar berbeza dari sistem operasi ke sistem operasi. Penyelesaian termasuk: 1) Menggunakan Swing dan Javafx sebagai Toolkit GUI; 2) menyatukan penampilan melalui uimanager.setlookandfeel (); 3) mengoptimumkan prestasi untuk memenuhi platform yang berbeza; 4) menggunakan perpustakaan pihak ketiga seperti Apachepivot atau SWT; 5) Melaksanakan ujian silang platform untuk memastikan konsistensi.

Apakah aspek pembangunan Java yang bergantung kepada platform?Apakah aspek pembangunan Java yang bergantung kepada platform?Apr 26, 2025 am 12:19 AM

Javadevelopmentisnotentirelyplatform-independentduetoseveralfactors.1) jvmvariationsaffecperformanceandbehavioracrossdifferentos.2) nativelibrariesviajniintroduceplatform-specificiSsues.3)

Adakah terdapat perbezaan prestasi semasa menjalankan kod Java pada platform yang berbeza? Kenapa?Adakah terdapat perbezaan prestasi semasa menjalankan kod Java pada platform yang berbeza? Kenapa?Apr 26, 2025 am 12:15 AM

Kod Java akan mempunyai perbezaan prestasi apabila berjalan pada platform yang berbeza. 1) Strategi pelaksanaan dan pengoptimuman JVM adalah berbeza, seperti OracleJDK dan OpenJDK. 2) Ciri -ciri sistem operasi, seperti pengurusan memori dan penjadualan thread, juga akan menjejaskan prestasi. 3) Prestasi boleh ditingkatkan dengan memilih JVM yang sesuai, menyesuaikan parameter JVM dan pengoptimuman kod.

Apakah beberapa batasan kemerdekaan platform Java?Apakah beberapa batasan kemerdekaan platform Java?Apr 26, 2025 am 12:10 AM

Java'splatformindecthaslimitationscludingperformanceOverhead, VersionCompateIssues, cabaranwithnativelibraryintegration, platform-specificfeatures, danjvminstallation/penyelenggaraan.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Muat turun versi mac editor Atom

Muat turun versi mac editor Atom

Editor sumber terbuka yang paling popular

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

Versi Mac WebStorm

Versi Mac WebStorm

Alat pembangunan JavaScript yang berguna

DVWA

DVWA

Damn Vulnerable Web App (DVWA) ialah aplikasi web PHP/MySQL yang sangat terdedah. Matlamat utamanya adalah untuk menjadi bantuan bagi profesional keselamatan untuk menguji kemahiran dan alatan mereka dalam persekitaran undang-undang, untuk membantu pembangun web lebih memahami proses mengamankan aplikasi web, dan untuk membantu guru/pelajar mengajar/belajar dalam persekitaran bilik darjah Aplikasi web keselamatan. Matlamat DVWA adalah untuk mempraktikkan beberapa kelemahan web yang paling biasa melalui antara muka yang mudah dan mudah, dengan pelbagai tahap kesukaran. Sila ambil perhatian bahawa perisian ini