requested として作成し(見積もり実行時間を伴います)、後でスケジューラーがチャンネルと [planned_start_time, planned_end_time) の時間枠を割り当て、scheduled に移行させます。
予定測定は実際のセル測定を作成したり変更したりすることは決してありません。実テストが開始すると、実際の cell_measurement がプランへリンクバックし、プランを in_progress に移行させます — 予定行はリクエストとスケジュールの監査証跡として残ります。
使い分け
予定測定はオプションです — ラボビューに記載されている通り、測定を直接作成して実行時にchannel_id を設定することもできます。次のような場合に予定測定を使用します:
- プロジェクトまたは特定のセル仕様に対してリクエストされたテストのバックログを追跡したい。
- 2 人のスケジューラーが同じチャンネルと時間枠を予約しないよう、将来のチャンネル時間を予約したい。
- (科学者や PM からの)リクエストと、(ラボオペレーターによる)スケジュールの決定を分離したい。
- 各テストを誰がリクエストし、誰がスケジュールしたかの監査証跡を残したい。
ライフサイクル
スケジュールは完全に手動です — スケジューラーがチャンネルと時刻を選びます。自動オプティマイザはありません。
scheduled プランで将来のチャンネル時間を予約しても、ラボビューでチャンネルが occupied として表示されることはありません — それは実行中の実測定のみが行います。プランはカレンダーを予約し、cell_measurement は現時点を予約します。
フィールド
name はプロジェクト内で一意(大文字小文字を区別しない)です。重複する名前でプランを作成すると IonworksError が error_code == "CONFLICT"(HTTP 409)で発生します。作成を冪等にするには create_or_get を使用してください。
測定のリクエスト
チャンネルなしのrequested プランを作成し、見積もり実行時間と、必要であればテスト対象のセル仕様を指定します。具体的なインスタンスは後でスケジューラーが選択します。
create_or_get を使用します:
チャンネルへのスケジュール
schedule でチャンネルと時間枠を割り当てます — これは requested プランを scheduled に移行する便利なラッパーです。
scheduled として一度に作成することもできます:
既存プランのキャンセルや完了は、チャンネルが運用停止になった後でも常に許可されます。
一覧取得とフィルタリング
list はプロジェクト単位で、PaginatedList[PlannedMeasurement] を返します。ライフサイクルステータス、チャンネル、名前でフィルタリングできます。
更新、キャンセル、削除
schedule を再度呼び出す(あるいは個別フィールドを update する)だけです。サーバーは新しい値に対して重複と運用停止のチェックを再実行します。
実測定をプランにリンクする
プランを手動でin_progress に遷移させることはありません。実行が開始したら、planned_measurement_id を設定した cell_measurement を作成します — バックエンドがそれをリンクし、アトミックにプランを in_progress へ移行させます。
- プランが
scheduledである。 - 測定が
time_seriesタイプであり、channel_idを持っている(channel_idのないplanned_measurement_idは拒否)。 - プランと測定が同じプロジェクトおよび組織にある。
- 測定の
channel_idがプランのchannel_idと一致する。 - プランに
cell_instance_idが設定されている場合、測定は同じセルインスタンスで実行される必要がある。
status = scheduled に対するアトミックな compare-and-set であり、負けた側はリンクされないまま残されます(警告としてログに記録されます)。
リンク後は、ラボビュー上のチャンネル占有状態は実行中の cell_measurement によって駆動されます。予定行は監査証跡として残ります。
権限
予定測定のエンドポイントは既存のcell_measurement 権限を再利用します:
project_id
すべての client.planned_measurement.* メソッドは任意の project_id を受け付けます。省略した場合、Ionworks クライアントに設定されている project_id(または IONWORKS_PROJECT_ID 環境変数)にフォールバックします。どこからも project_id が取得できない場合は ValueError が発生します。
次のステップ
ラボビュー
予定測定がスケジュールされるサイト、サイクラー、チャンネルをセットアップします。
測定
スケジュール済みプランへリンクバックする実際の
cell_measurement を作成します。