キュー
概要と主要な概念
キューは、下流のオブジェクトがフローアイテムを受け入れることができないときにフローアイテムを格納するために使用されます。デフォルトでは、キューは先入れ先出し方式で機能します。つまり、下流のオブジェクトが使用可能になると、そのオブジェクトを最も長い時間待っていたフローアイテムが最初にキューを離れます。キューには、フローアイテムをリリースする前にバッチに累積するためのオプションがあります。
キューは固定リソースです。最大コンテンツに到達するまで、フローアイテムを受け取り続けます。バッチ処理が無効な場合、フローアイテムがキューに到着するとすぐにキューはフローアイテムをリリースします。また、各フローアイテムがリリースされる直前にOnEndCollectingトリガーが呼び出されます。
バッチ処理
バッチ処理が有効になっている場合、キューはフローアイテムのターゲットバッチを受け取るまで待機し、バッチ内のすべてのフローアイテムを同時にリリースします。デフォルトでは、最大待機時間は0です。最大待機時間0は、最大待機時間がないことを意味します。または、キューがバッチを収集するために無期限に待機します。最大待機時間がゼロでない場合、最初のフローアイテムが到着するとキューがタイマーを起動します。タイマーの終わりにバッチがまだ満たされていない場合、キューはバッチの収集を終了し、収集したすべてのフローアイテムをリリースします。
OnEndCollectingトリガーはフローアイテムがリリースされる直前に呼び出されます。また、バッチ内の最初のフローアイテムへの参照がアイテムとして渡され、収集されたアイテムの数がparam(2)として渡されます。キューがバッチ間でコンテンツをフラッシュするように設定されている場合、キューはバッチの収集が終了するとすぐに入力ポートを閉じ、すべてのバッチを出力するまで待ってから入力ポートを再度開きます。キューがバッチ間でコンテンツをフラッシュしない場合、キューは各バッチの収集が終了するとすぐに別のバッチの収集を開始します。つまり、任意の時点でキュー内にある終了済みのバッチに離れることを待機させることができます。
イベント
イベントの詳細については、「イベントリスニング」ページを参照してください。
キューは、すべての固定リソースに共通の標準イベントを使用します。これらのイベントの説明については、「固定リソース - イベント」を参照してください。
キューには次の追加イベントがあります。
収集終了時
このイベントは、アイテムがキューを離れる前にキューがアイテムのバッチを完了したときに発生します。
次のパラメータがあります。
イベントパラメータ | タイプ | 説明 |
---|---|---|
入るアイテム | オブジェクト | バッチ内の最後のフローアイテムへの参照。 |
バッチサイズ | 整数 | バッチ内のフローアイテムの数。 |
状態
統計的な目的で、キューは、シミュレーション実行中、さまざまな時点で次のいずれかの状態になります。オブジェクトをクリックし、[クイックプロパティ]の[統計]ペインを表示すると、現在の状態を表示できます。
空
キューは空です。
回収中
キューがバッチのフローアイテムを収集しています。
リリース中
キューはバッチの収集を終了しており、持っているフローアイテムをリリースしています。また、キューがバッチ処理中ではなくキューにフローアイテムがある場合は、この状態になります。
輸送待ち
キューにはリリースされて下流に移動する準備が完了しているフローアイテムがありますが、輸送が到着してフローアイテムをピックアップするのを待機しています。
統計
キューは、すべての固定リソースに共通の標準統計を使用します。これらの統計情報については、「固定リソース - 統計」を参照してください。
プロパティ
キューオブジェクトには、さまざまなプロパティを持つ5つのタブがあります。最後の4つのタブは、すべての固定リソースで共通する標準タブです。これらのタブのプロパティの詳細については、以下を参照してください。
[キュー]タブのみがキューオブジェクトに固有です。このタブのプロパティについては、この先のセクションで詳しく説明します。
最大コンテンツ
これはキューが一度に保持できるフローアイテムの最大数です。
LIFO
このチェックボックスをオンにすると、キューは「後入れ先出し(LIFO)」キューとして機能し、それ以外の場合は先入れ先出し(FIFO)キューとして機能します。
バッチ処理
次のフィールドでキューのバッチ処理機能を定義します。
- バッチ処理を実行 - このチェックボックスをオンにすると、キューはフローアイテムをバッチに累積してから下流にリリースします。累積は、ターゲットバッチサイズが満たされるか、最大待機時間が経過するまで続きます。このチェックボックスをオフにすると、バッチ処理は行われず、フローアイテムは下流のオブジェクトが使用可能になるとすぐに離れます。
- ターゲットバッチサイズ - この数値は、フローアイテムを下流に送る前にキューが収集するバッチのサイズを定義します。フローアイテムは個別に下流に送られます。
- 最大待機時間 - この数値は、フローアイテムを下流に送る前にキューが待機する最大時間です。この時間が経過すると、バッチサイズが満たされていなくても現在収集されているバッチはリリースされます。このフィールドに0を指定すると、最大待機時間はありません。つまり、キューは無期限に待機します。
- バッチ間でコンテンツを消去 - このチェックボックスをオンにすると、現在のすべてのバッチが離れるまでキューに新しいフローアイテムは入りません。
ビジュアル
次のプロパティは、フローアイテムが入るときにキュー内にフローアイテムをどのように配置するかを定義します。
- アイテムの配置 - このメニューでは、フローアイテムをキュー内に視覚的にどのように配置するかを定義します。以下のオプションがあります。
- 縦にスタック - フローアイテムをお互いの上にスタックします。パイルの下部にあるフローアイテムが最も長くキューに存在するフローアイテムです。
- 水平線 - フローアイテムが横方向に並びます。キューの出力ポートに最も近いフローアイテムが最も長くキューに存在するフローアイテムです。
- キュー内にスタック - フローアイテムはキュー内の行にスタックされます。フローアイテムより前にランク付けされた製品がキューから取り出されると、フローアイテムが移動します。製品の位置をキューにあったときと同じ位置に保持する場合は、下流のオブジェクトがキュー内の最後の製品のみをプルするようにしてキューをLIFOにします。
- 何もしない - フローアイテムはすべてキュー内の同じポイントに配置されます。キューにフローアイテムが1つだけ保持されているかのように見えることがあります。
- スタックベースZ - この数値は、キューが縦方向またはキュー内にスタックされているフローアイテムの配置を開始する高さを定義します。