River - Go + Postgres 向けの高速で堅牢なジョブキュー
(brandur.org)- アプリケーションデータとジョブキューに同じデータベース(Postgres)を使うことを推奨。依存関係を最小化
- 他のデータベース変更とあわせてトランザクション方式でジョブをキューに入れることで、分散システムにおける一連の問題を回避できる
- Transactional enqueueing : トランザクションがコミットされるとジョブはキューに入り、ロールバックされると削除され、コミットされるまではジョブが見えないことを保証
- Postgres の
NOTIFY機能を活用し、ジョブの準備ができ次第ジョブキューがワーカーを起こして処理を開始できるため、ジョブ開始前の平均遅延をミリ秒単位まで短縮可能 - Postgres のバイナリプロトコルを使用し、データベースとのラウンドトリップを最小化して効率を向上
- Bulk Job Insert は
COPY FROMを使って効率的に実行
- Bulk Job Insert は
まだコメントはありません。