Spring Cloud を使用してマイクロサービス アーキテクチャの下でタスク スケジューリング システムを開発する方法
インターネットの発展に伴い、アプリケーションの信頼性、拡張性、保守性、その他の機能を向上させるために、マイクロサービス アーキテクチャを採用して分散システムを構築する企業が増えています。マイクロサービス アーキテクチャでは、タスク スケジューリング システムは非常に重要なコンポーネントであり、一部の非同期タスクを定期的に実行したり、他のマイクロサービス インターフェイスを呼び出したりするために使用できます。
Spring Cloud は、Spring Cloud Netflix、Spring Cloud Config、Spring Cloud Stream、Spring Cloud Security などの非常に強力なツールとフレームワークを提供するオープンソースのマイクロサービス フレームワークです。その中でも、Spring Cloud Netflix は非常に人気のあるマイクロサービス フレームワークであり、サービスの登録と検出、クライアントの負荷分散、構成管理、サーキット ブレーカー、API ゲートウェイなど、いくつかのコア コンポーネントと拡張機能を提供します。
この記事では、Spring Cloud を使用してタスク スケジューリング システムを開発する方法を紹介します。主に次の内容が含まれます。
- タスク スケジューリング システムの要件分析
- Spring Scheduler の使用法によるタスク スケジューリングの実装
- タスク スケジューリング システムを Spring Cloud マイクロサービス アーキテクチャに入れる
1. タスク スケジューリング システムの要件分析
マイクロサービス アーキテクチャでは、タスク スケジューリング システムは、次の機能をサポートする必要があります。
- は、指定された時点または瞬間にタスクの実行をトリガーできます。
- 固定時間間隔または定期的な時間間隔でのタスクの実行のトリガーをサポートします。
- タスク実行失敗後の再試行をサポートします。
- タスクの非同期実行をサポートし、メイン プログラムの実行には影響しません。
- タスクの動的な追加と削除をサポートします。
2. Spring Scheduler を使用してタスク スケジューリングを実装する
Spring Scheduler は Spring フレームワークのモジュールであり、タスク スケジューリングを簡単に実装できる軽量なタスク スケジューリング フレームワークを提供します。
- Spring Scheduler の依存関係を追加
Spring Boot プロジェクトの pom.xml ファイルに Spring Scheduler の依存関係を追加します:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <version>2.4.3</version> </dependency>
- タスクの作成実行クラス
Runnable インターフェイスから継承したタスク実行クラスを作成して、特定のタスク ロジックを実装します。
@Component public class JobTask implements Runnable { @Override public void run() { System.out.println("running job..."); } }
- タスク スケジューリング構成の追加
タスク スケジューリング構成クラスを Spring Boot プロジェクトに追加して、特定のタスク スケジューリング戦略と実行されるタスクを構成します。
@Configuration @EnableScheduling public class ScheduleConfig { @Autowired private JobTask jobTask; //在每分钟的3秒和6秒执行一次 @Scheduled(cron = "3-6 * * * * ?") public void scheduleJob1() { jobTask.run(); } //在间隔5秒后执行第一次,之后每隔10秒执行一次 @Scheduled(initialDelay = 5000, fixedRate = 10000) public void scheduleJob2() { jobTask.run(); } }
- テスト タスク スケジュール機能
Spring Boot アプリケーションを開始すると、コンソール出力が表示され、指定された時間間隔と周期に従ってタスクが実行されます。 。タスクの実行戦略を変更する場合は、構成クラスを変更するだけで済みます。
3. タスク スケジューリング システムを Spring Cloud マイクロサービス アーキテクチャに配置します
- タスク スケジューリング システムをサービス登録センターに登録します
タスク スケジューリング内システム アプリケーションでは、Spring Cloud の Eureka や Consul などのサービス登録および検出コンポーネントを使用して、タスク スケジューリング システムをサービス登録センターに登録します。
spring: application: name: task-scheduler eureka: instance: hostname: localhost client: service-url: defaultZone: http://localhost:8761/eureka/
- ゲートウェイでルーティング ルールを設定する
Spring Cloud Gateway や Zuul などの API ゲートウェイを使用して、タスク スケジューリング システムを他のマイクロサービスに公開します。
spring: application: name: api-gateway server: port: 8080 eureka: instance: hostname: localhost client: service-url: defaultZone: http://localhost:8761/eureka/ gateway: routes: - id: task-scheduler uri: lb://task-scheduler predicates: - Path=/schedule/**
- マイクロサービスでタスク スケジューリング システムを呼び出す
他のマイクロサービスでは、Feign や RestTemplate などのツールを使用して、タスク スケジューリング システムによって公開されている RESTful API を呼び出します。非同期タスクを実行したり、タスクの実行をトリガーしたりします。
@Service public class OrderService { @Autowired private TaskSchedulerClient taskSchedulerClient; public void createOrder(Order order) { //... 创建订单逻辑 taskSchedulerClient.scheduleJob(); } }
4.概要
この記事では、Spring Cloud を使用してマイクロサービス アーキテクチャの下でタスク スケジューリング システムを開発する方法を紹介します。これには、主に Spring Scheduler を使用したタスク スケジューリングの実装とタスク スケジューリング システムの配置が含まれます。 Spring Cloud のマイクロサービス アーキテクチャに移行します。マイクロサービス アーキテクチャを導入する開発者が、より簡単に信頼性と拡張性の高い分散システムを構築できるようになる一助になれば幸いです。
以上がSpring Cloud を使用してマイクロサービス アーキテクチャの下でタスク スケジューリング システムを開発する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

この記事では、Javaプロジェクト管理、自動化の構築、依存関係の解像度にMavenとGradleを使用して、アプローチと最適化戦略を比較して説明します。

この記事では、MavenやGradleなどのツールを使用して、適切なバージョン化と依存関係管理を使用して、カスタムJavaライブラリ(JARファイル)の作成と使用について説明します。

この記事では、カフェインとグアバキャッシュを使用してJavaでマルチレベルキャッシュを実装してアプリケーションのパフォーマンスを向上させています。セットアップ、統合、パフォーマンスの利点をカバーし、構成と立ち退きポリシー管理Best Pra

この記事では、キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPAを使用することについて説明します。潜在的な落とし穴を強調しながら、パフォーマンスを最適化するためのセットアップ、エンティティマッピング、およびベストプラクティスをカバーしています。[159文字]

Javaのクラスロードには、ブートストラップ、拡張機能、およびアプリケーションクラスローダーを備えた階層システムを使用して、クラスの読み込み、リンク、および初期化が含まれます。親の委任モデルは、コアクラスが最初にロードされ、カスタムクラスのLOAに影響を与えることを保証します


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

Dreamweaver Mac版
ビジュアル Web 開発ツール

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター
