ホームページ  >  記事  >  Java  >  Quartz を使用して Java でスケジュールされたタスクを実装する方法

Quartz を使用して Java でスケジュールされたタスクを実装する方法

WBOY
WBOY転載
2023-04-19 23:49:051777ブラウズ

設定ファイル

sue.spring.quartz.cron=*/5 * * * * ?

pom

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-quartz</artifactId>
</dependency>

スケジュールされたタスクとトリガー

package com.luke.demo.schedule;
import org.quartz.*;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class QuartzConfig {
    @Value("${sue.spring.quartz.cron}")
    private String testCron;
    /**
     * 创建定时任务
     */
    @Bean
    public JobDetail quartzTestDetail() {
        JobDetail jobDetail = JobBuilder.newJob(QuartzTestJob.class)
                //添加认证信息
                .withIdentity("quartzTestDetail", "QUARTZ_TEST")
                .build();
        return jobDetail;
    }
    /**
     * 创建触发器
     */
    @Bean
    public Trigger quartzTestJobTrigger() {
        //执行频率
        CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule(testCron);
        //创建触发器
        Trigger trigger = TriggerBuilder.newTrigger()
                .forJob(quartzTestDetail())
                //添加认证信息
                .withIdentity("quartzTestJobTrigger", "QUARTZ_TEST_JOB_TRIGGER")
                //添加执行规则
                .withSchedule(cronScheduleBuilder)
                .build();
        return trigger;
    }
}

スケジュールされたタスクのビジネスコード

ここでのQuartzTestJobは次のとおりです。メソッドexecuteInternal 定期的に実行する必要があるタスクを次に示します。

public class QuartzTestJob extends QuartzJobBean {
    @Override
    protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
        System.out.println("现在是"+ new Date());
    }
}

プロジェクトが開始されると、設定された頻度に従って出力は次のようになります:

Quartz を使用して Java でスケジュールされたタスクを実装する方法

もちろん、スケジュールされたタスクを開始することもできます。自動車ローン ビジネスのリスク管理システムに取り組んでいたとき、私は 3 者からデータを要求し、積極的に要求し、スケジュールされたタスクで結果をポーリングしました。

メッセージ キューを使用した実装も非常に高速であるようです。遅延メッセージはこのビジネス要件を満たすことができます。データを要求してから、遅延メッセージをメッセージ キューに入れます。時間が来たら、それが機能しない場合は、別の遅延メッセージをメッセージ キューに入れます。スケジュールされたタスクと比較した場合の利点は、CPU のアイドル状態が回避され、パフォーマンスが向上することです。

以上がQuartz を使用して Java でスケジュールされたタスクを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。