✅ Freee×Odoo連携のベストプラクティス整理
| 条件 | 最適解 | 理由 |
|---|---|---|
| 1社のみ、少量データ | ✅ CronJobで十分 | 毎晩/毎時間の定期連携でOK。単発実行なのでJob管理で十分。 |
| 複数社 or 大量データ(数千件/日) | ✅ RabbitMQ + Job構成 | – 各社/データ単位で分散処理できる – 並列化で高速化・リトライ制御が可能 |
| リアルタイム連携やイベント駆動 | ✅ RabbitMQ Consumer常駐Pod | 逐次処理+APIレートリミットの調整がしやすい |
✅ 1社・少量データ連携の流れ(シンプル構成)

- Kubernetes CronJobで毎晩トリガー
- Pythonスクリプトで:
- Odooの会計データ抽出(XML-RPC/REST API)
- Freee APIにデータ送信
- 完了でPod終了、必要なければ削除
✅ 複数社・大量データの場合(RabbitMQ+Job)

- RabbitMQが複数社連携のイベントハブに
- Controller Podが新着メッセージごとにJobを作成
- Jobは会社単位/日次単位で独立して実行 → スケーリング容易
✅ まとめ
| ケース | 仕組み | Kubernetesでの推奨 |
|---|---|---|
| 1社/少量 | 定期連携のみ | CronJob + Python |
| 複数社/大量 | イベント分散 | RabbitMQ + Job |
| リアルタイム | イベント駆動 | RabbitMQ + Consumer Pod常駐 |
✅ CronJobを作成する場合の流れ
1️⃣ schedule でいつ実行するかを指定
2️⃣ jobTemplate にどんなPodを作るか定義
3️⃣ Kubernetesがスケジュールに従って自動的に Job を生成
4️⃣ Job がPodを作成・実行
5️⃣ 実行が完了したら Job は完了し、Podは削除される(または保持設定による)
コメントを残す