Apollo は cron ステートメントのホット設定を実装します

元のリンク

GitHub プロジェクトのアドレス

Gitee プロジェクトのアドレス

Apollo は Ctrip のフレームワーク部門によって開発された分散構成センターです。さまざまなアプリケーション環境とさまざまなクラスターの構成を一元管理できます。構成が変更された後、リアルタイムでアプリケーション側にプッシュでき、標準化された権限を持ちます。プロセス ガバナンスおよびその他の機能。マイクロサービス構成管理シナリオに適しています。

Apolloにはプロパティ設定ファイルと同じ機能があり、パラメータを設定することができます。Apollo の利点は、プロジェクトを再起動せずにパラメーターの値をリアルタイムで変更できることです。

1 Apollo を設定する

Apollo をローカルで設定する方法のリファレンス:

アポロのローカル迅速展開

2 Apolloパラメータを追加する

Apollo にパラメータを追加します。

param.cron_test1=0/5 * * * * ?
param.cron_test2=0/5 * * * * ?

Apollo のスケジュールされたタスク cron ステートメントのホット設定を実装するには、 を使用する必要がありますScheduledTaskRegistrar

具体的な方法は以下のとおりです。

@Override
public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
    
    

    Runnable runnable  = () -> {
    
    
        System.out.println("cron_test:" + cron_test);
    };

    Trigger trigger  = triggerContext -> {
    
    
        CronTrigger cronTrigger = new CronTrigger(cron_test);
        return cronTrigger.nextExecutionTime(triggerContext);
    };
    taskRegistrar.addTriggerTask(runnable , trigger );
}

@Override
public int getOrder() {
    
    
    return 0;
}

プロジェクトの完全なアドレス:

GitHub アドレス: https://github.com/Snowstorm0/learn-apollo-cron

Gitee アドレス: https://gitee.com/Snowstorm0/learn-apollo-cron

プロジェクトを実行する前に、の値resource/application.propertiesを変更し、 のアドレスに置き換える必要があります。ポート番号は Eureka のポート番号です (デフォルトは 8080)。apollo.metalocalhostapollo

プロジェクトを実行すると、出力が表示されます。

cron_test1:0/5 * * * * ?
current_time1:10:53:13
cron_test2:0/5 * * * * ?
current_time2:10:53:13

Apollo の cron ステートメントを に変更します0/10 * * * * ?。再起動せずに、プロジェクトの出力が次のようになることを確認できます。

cron_test1:0/10 * * * * ?
current_time2:10:54:05
cron_test2:0/10 * * * * ?
current_time1:10:54:05

 
 

プログラミングの知識をさらに学ぶには、私の公式アカウントをフォローしてください。

コードパス

おすすめ

転載: blog.csdn.net/zbzcDZF/article/details/128618274