Content last updated 2026-05-26

ラウンドロビン

チケットのラウンドロビンに関するドキュメント

このガイドでは、特定の基準に基づいてチケットの割り当てを行う自動化システムである、チケットのラウンドロビンについて説明します。

チケットラウンドロビンを理解する

仕組み

各ジョブは実行前に、必要な処理を行えるようイメージをセットアップするためのアクションをいくつか実行します:

  • support-team のリポジトリを data/support-team にクローン
  • ruby -v コマンドの実行結果を出力
  • bundler gem をインストール
  • bundle コマンドを実行
  • 環境変数 SERVICE_CREDS の値をファイル data/config.json に出力

その後、./bin/round_robin スクリプトが実行されます。

スクリプトは事前に作成されたビューを使ってラウンドロビン対象のチケット一覧を取得します。チケットがない場合、スクリプトはステータスコード 0 で終了します。

次にスクリプトは、support-team の情報をチェックして現在対応可能なエージェントを決定し、PTO 中のエージェントや勤務時間外のエージェントを除外します。対応可能なエージェントが存在しない場合、Support が管理する Slack incoming webhook 経由で Slack コントロールに通知を投稿します(そしてステータスコード 0 で終了します)。

現在対応可能なエージェントの一覧を使い、次にこれらのエージェントの現在のワークロードを判定します(これは、解決済み未満のステータスを持つ割り当て済みチケットを参照することで行われ、チケットの Ticket Weight フィールド(チケットの複雑さを示す数値)を使います)。

ラウンドロビンが必要なチケットを集めた後(Not round robined view を使用)、スクリプトは最もワークロードの低いエージェントにそれらを割り当てます(そのエージェントのワークロードを 1 増分します)。

管理者向けタスク

ラウンドロビンの変更

ラウンドロビンを変更するには、プロジェクトリポジトリで MR を作成する必要があります。具体的な変更内容はリクエスト自体によって異なります。

ピアによるレビュー・承認後、MR をマージできます。マージされると、次回のスケジュールパイプライン実行時に使用されます。

よくある問題とトラブルシューティング

このセクションは必要に応じて項目が追加されていく生きたセクションです。