Springバッチジョブが開発環境で開始されない
P粉517814372
P粉517814372 2023-09-06 10:01:50
0
1
572

私は Spring spring-boot-starter-batch 2.7.9 を使用し、データ ソースとして mysql DB を使用します。奇妙な問題が発生しています。バッチ ジョブはローカルで実行されますが、開発環境 (kubernetes) では次の例外を除いて開始できません:

リーリー

ジョブは、文字列と日付時刻という 2 つのジョブ パラメーターを提供する REST API を通じてトリガーされます。

パラメータの例:

リーリー

ローカル データベースと開発データベースの違いの 1 つは、レプリケーション要素である可能性があります。開発データベースは 3 つのレプリカで構成されていますが、ローカルには 1 つしかありません。これがこの例外の原因でしょうか?この問題はどうすれば解決できますか?ティア。

P粉517814372
P粉517814372

全員に返信(1)
P粉166675898

各テーブルに主キーがあるように Spring Batch メタテーブルの定義をカスタマイズする必要があります。

デフォルトでは、MySQL は主キーのないテーブルを受け入れます。ただし、MySQL レプリケーションを使用するセットアップでは、主キーのないテーブルは (グループ レプリケーションの状況のように) まったく機能しないか、後々運用上の問題を引き起こす可能性があります。

根本的な原因は、Spring Batch アーキテクチャの DDL に含まれるインデックスの数が非常に限られていることです。インデックス作成への最適なアプローチは特定のユースケースに大きく依存するため、これは意図的なものです: https://docs.spring.io/spring-batch/docs/4.3.8/reference/html/schema -appendix.html #メタデータテーブルのインデックス作成の推奨事項

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート