メニュー

Expand
Rate this page:

Thanks for rating this page!

We are always striving to improve our documentation quality, and your feedback is valuable to us. How could this documentation serve you better?

Workerの並び替え

By default, the reservation of Workers in a given TaskQueue is ordered by duration a Worker is unoccupied. Without an order_by expression, the Worker who has waited the longest without a Task will be the first reserved. An order_by expression allows you to designate an ordering for the Workers of a given TaskQueue based upon comparison of Workers' attributes.

order_by Expressionの主な構成要素は下記から構成されるorder_by節です:

  1. 入れ子にされた、あるいはそれ以外のWorkerのJSON属性内の整数値
  2. 並び順は「ASC」と指定すると昇順に、「DESC」を使用すると降順になります。

order_by Expressionは任意の数のorder_by節から構成できます。 1番目のorder_by節に対して複数のWorkerが同一の解決値をもつ場合、次の属性を比較することで2番目のorder_by節が並び順を最終決定する決め手となります。 例として、下記のようなWorkspaceを考えてみましょう:

  • 右記のようなorder_by Expressionを持つTaskQueue "worker.finance ASC, worker.support ASC"
  • 右記のような属性を持つWorker「Alice」 {finance = 10, support = 8}
  • 右記のような属性を持つWorker「Bob」 {finance = 10, support = 5}

Alice and Bob are first compared using the first order_by clause, "worker.finance_level ASC", which results in a tie because their finance attributes are equal. To break the tie, the two Workers are next compared using the next order_by clause, "worker.support_level ASC". Bob's support level, 5, is less than Alice's support level, and the sort direction is ascending. When a new Task is created and enters this TaskQueue, the workers are ordered {Bob, Alice}, and Bob is reserved to handle the new Task.

Workerが特定のスキルを保持していない場合はどうなるでしょうか。 並び順が確定しない場合、特定のスキルを持たないWorkerが、並べ替えの順序として「ASC」または「DESC」が選択されていても、そのスキルを持っているWorkerの後に順序づけられます。 たとえば、下記のようなWorkspaceがあったとします:

  • 右記のようなorder_by Expressionを持つTaskQueue "worker.finance ASC, worker.support ASC"
  • 右記のような属性を持つWorker「Alice」 {finance = 10, support = 8}
  • 右記のような属性を持つWorker「Bob」 {finance = 10}

Alice and Bob are first compared using the first order_by clause, "worker.finance_level ASC", which results in a tie because their finance attributes are equal. To break the tie, the two Workers are next compared using the next order_by clause, "worker.support_level ASC". Bob does not have the support attribute and will therefore appear in the queue after Alice. When a new Task is created and enters this TaskQueue, the workers are ordered {Alice, Bob}, and Alice is reserved to handle the new Task.

整数以外の属性で並べ替えを試みた場合、Expressionは無視されます。

指定されたすべての並べ替えの節について等しいWorkerに対しては、最後にTaskを割り当てられてからもっとも長時間経ったものが最終的な並び順の条件として使用されます。

{  
   "task_routing":{  
      "filters":[  
         {  
            "filter_friendly_name":"Sales filter",
            "expression":"type == 'Sales'",
            "targets":[  
               {  
                  "expression":"task.subSection = worker.specializedSubField",
                  "order_by":"worker.english_level ASC",
                  "priority":"1",
                  "queue":"WQ3935a4f744a241c1356c09310c2398e6"
               },
               {  
                  "priority":"1",
                  "queue":"WQ787b271950e0f7687ec432221e672ffa"
               }
            ]
         }
      ]
   }
}
Rate this page:

ヘルプが必要ですか?

誰しもが一度は考える「コーディングって難しい」。そんな時は、お問い合わせフォームから質問してください。 または、Stack Overflow でTwilioタグのついた情報から欲しいものを探してみましょう。