スケジューリングおよび監視-springバッチ(7)XXLジョブバッチを結合

免責事項:この記事はブロガーオリジナル記事ですが、許可ブロガーなく再生してはなりません。https://blog.csdn.net/masson32/article/details/91503723

スケジューリングおよび監視-springバッチ(7)XXLジョブバッチを結合

タグ:springbatch


1.はじめに

上の以前の記事の後Spring Batch、最も単純なものから組み合わせた試料の導入、helloworldデータ列出力、データベースへのデータベースの同期とデータベースへのファイルを読み、[組み合わせるためにBeetlSql、データベースを読み書きするためにさらに簡略化し、その後、動的パラメータによって結ばすでに基本的にデータの抽出、データの同期作業を満たすため、浅いから深いに、増分同期を達成与えられ、ここでは前の記事の一覧は以下のとおりです。

バックグラウンドサービス定期サービスの運用および保守作業は、実行中のサービスを監視するタスクの統計を実行する方法を含め、一括サービスよりも重要な課題であるとして、一般的に実行するバッチ・ジョブは、その上のタスク実行ログを表示します。前述のように、Spring Batchそれはバッチフレームワークではなく、スケジューリングのフレームワークです。スケジューリングフレームワークは、簡単なポイントを使用することができquartzcrontab一方で市場が比較的汎用性の完璧なスケジューリングフレームワークを持って、比較することによって、個人的な感情はxxl-job、ここで紹介し、そのため、使用を使用するのは比較的簡単で、比較的完全な機能xxl-jobSpring Batchバッチタスクをスケジューリング、監視機能を実現しています。

2.xxlジョブ紹介

xxl-job軽量分散タスクスケジューリングプラットフォームであり、そのコアの設計目標は、急速に学ぶことは簡単で、軽量で、拡張が容易な開発することです。システムアーキテクチャ設計は、個別のアクチュエータ、スケジューリングシステムとスケジューリングシステムは、アクチュエータに関連付けられているスケジューリングロジックを担当し、合理的である開発者が直接スケジューリング・システムを使用することができ、特定のタスクを達成するためのロジックで、その後、それをする彼らの使命を達成するためのロジックがエグゼキュータのためでありますすることができますので、箱から出して。具体的な使用と詳細な手順は、その参照の公式文書を

よるとxxl-job、ドキュメント、インストールするxxl-jobデータベースを、その後、xxl-job-admin次のようにページを起動し、起動:

XXLジョブインターフェース

3.書き込みアクチュエータ春のバッチ

この例では、中古品に基づいているサンプル・データベースの増分同期を、唯一のオリジナルに基づいて実行するようにデバイスを追加する必要があり、これは一例ですspring-batch-xxl-executorよるとxxl-job、公式文書、方法についての指示がある展開「アクチュエータプロジェクト」を設定するには本実施例に特有の、以下を達成するように構成されました。

3.1 Mavenを頼りに追加

追加xxl-job次のように、コアの依存関係を:

<!-- xxl-job-core -->
<dependency>
	<groupId>com.xuxueli</groupId>
	<artifactId>xxl-job-core</artifactId>
	<version>2.0.2</version>
</dependency>

3.2アクチュエータプロファイルの追加executor.properties

次のようにアクチュエータは、名前、住所、および他のスケジューリングシステムを埋めるように配置されたアクチュエータを含みます。

### xxl-job admin address list, such as "http://address" or "http://address01,http://address02"
xxl.job.admin.addresses=http://127.0.0.1:8089/xxl-job-admin

### xxl-job executor address
xxl.job.executor.appname=${spring.application.name}
xxl.job.executor.ip=
xxl.job.executor.port=9999

### xxl-job, access token
xxl.job.accessToken=

### xxl-job log path
xxl.job.executor.logpath=logs
### xxl-job log retention days
xxl.job.executor.logretentiondays=-1

3.3アクチュエータアセンブリの構成

追加java上述のプロファイルをexecutor.properties設定。次のように:

@Configuration
@ConfigurationProperties(prefix = "xxl.job")
@PropertySource("classpath:/config/executor.properties")
@Slf4j
public class JobExecutorConfig {
    @Value("${xxl.job.admin.addresses}")
    private String adminAddresses;
    
    ......略

    @Bean(initMethod = "start", destroyMethod = "destroy")
    public XxlJobSpringExecutor xxlJobExecutor() {
        log.info(">>>>>>>>>>> xxl-job config init.");
        XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
        xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
        xxlJobSpringExecutor.setAppName(appName);
        xxlJobSpringExecutor.setIp(ip);
        xxlJobSpringExecutor.setPort(port);
        xxlJobSpringExecutor.setAccessToken(accessToken);
        xxlJobSpringExecutor.setLogPath(logPath);
        xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);

        return xxlJobSpringExecutor;
    }
}

3.4ライト・アクチュエータ

アクチュエータは、実際には、継承されたIJobHandler中で、実装クラスをexecute論理的なメソッドを実装するためのタスクの実現。この例では、単にテストの開始を押す前に、タスクのロジックを実現することができます。次のように:

@JobHandler(value="incrementUserJobHandler")
@Component
public class JobIncrementUserHandler extends IJobHandler {
    @Autowired
    private JobLauncherService jobLauncherService;

    @Autowired
    private IncrementService incrementService;

    @Autowired
    private Job incrementJob;
    @Override
    public ReturnT<String> execute(String s) throws Exception {
        return JobUtil.runJob4Executor("incrementUser",incrementService,jobLauncherService,incrementJob);
    }
}

スケジューリング春のバッチのため4. XXLジョブ

展開(正しく設定注)した後、次のことが可能なスケジューリングインターフェイスをタスク。具体的なプロセスは、あなたがへの参照を追加することができますすることができた文書。これは単に、アクチュエータを追加して、タスクを追加し、の実行を指定し、あなたが開始することができ、式を。ミッションの後に次の出力:xxl-job-adminspring-batch-xxl-executorxxl-job-adminxxl-jobspring-batch-xxl-executorincrementUserJobHandlercron

結果

5.まとめ

この記事は、サンプル・データベースの増分同期に基づいており、使用Spring Batchの組み合わせでxxl-jobそのバッチジョブより保守、希望が必要ですので、監視することができ、タスクスケジューラを達成するためにSpring Batch、バッチジョブの開発を支援するために人員を。

おすすめ

転載: blog.csdn.net/masson32/article/details/91503723