KamoCRM

リードレジャーを30秒ごとにフォールドし、それらを夜間に再カウントします。 ジョブトリガーはクラスターシークレットを必要とします

FeatureDaemonService
出荷済み
2026年9月23日 1:28 UTC
プロフィール
Kamo
コンテンツ
84746ae

リードレジャー(セキュリティサービス create lead ledgers.sql、適用2026-09-22)は、COUNT(*)を上の置換します 796k-leadプールと、維持された総数と、末尾だけのジャーナルでリード クレジットを上回る 書き込むトリガー。 このサービスはそれらを折り畳み、正直に保ちます: - LeadLedgerFoldJob(30秒以上): バッチごとの1つのステートメントはジャーナル行を削除し、それらを追加します 合計なので、読者は、前後の図を見ているので、決して半分。 読者は既にジャーナルをに加えます 全体的には、見逃しのティックコストは時間を読み、決して正しいことではありません。 最多で 40 バッチ 5,000 1 ダニあたり. - LeadLedgerReconcileJob(03:40 夜):各オーガズプールとすべてのメンバーの利用可能なクレジットを交換 行から ONE ステートメントの合計 + ジャーナル ( 1 つのスナップショット) と比較します。 違いはあります 'RECONCILE' デルタとして適用され、合計で書かれていないので、リカウントはトリガーをレースすることはできません。 折りたたむ。 また、欠落または無効になっているジャーナルトリガー名も記載します。 健康なシステムでは、それが見つけます 何もないので、WARNですべての修正が記録されます。 両方とも @DisallowConcurrentExecution であり、40001 の YugabyteDB の aborts のステートメントを再試行します(それぞれはアトミックです)。 そのため、再試行は2倍にすることはできません。 SQL は、この出荷前に YugabyteDB に対して再生されました (temp) 表:トリガー、読み込み、フォールド、リカウント、60チェック)。 JobTriggerController: POST /api/daemon/trigger/{job} と GET /status は誰にも回答しました。 セキュリティ設定 すべての権限を付与し、デーモン・ルート・イングレスルーは、公共のウェブ安全なエントリポイントにこのサービスを置く (ホスト daemon.internal.kamocrm.com; プローブ 200 匿名で), ので、任意のジョブ — 今、再計算を含む — クォーツプールが保持する多くの重複コピーとしてインターネットから始めることができます。 これから X-Internal-Auth = mlos.internal-auth-secret (constant-time) を要求し、その秘密の時に全員を拒否する 未設定です。 プラットフォーム内の何もこのエンドポイントを呼び出しません。 オペレータは、クラスターの内部から、まだできます。 テスト: LeadLedgerMaintenanceTest (折るループおよび帽子、recountの報告、欠落した制動機、retry ルール、およびライブトラフィックの横にある安全なSQL形状)、 JobTriggerControllerAuthTest.

すべての変更

配送を見るのが好きですか?

自分のワークスペースに到着します。 無料プランをスタートし、月に再度このページをお読みください.

永遠に無料で始める料金を見る