Skip to content

Commands and Jobs

EMQX Fleets は、デバイスに対して操作を送信するために、Commands と Jobs の2つのメカニズムを提供します。これらは異なるインタラクションパターンを持ち、配信保証も異なります。

Commands vs Jobs

CommandsJobs
インタラクションパターンリアルタイムのリクエスト-レスポンス非同期バッチ送信、デバイスごとの追跡あり
対象単一のデバイス1台以上のデバイスまたはThing Group
配信即時、デバイスがオンラインである必要ありキューイングされ、デバイスは再接続時に取得
実行追跡単一の実行記録とステータスデバイスごとの実行記録と完全なライフサイクル
タイムアウトあり(コマンドごとに設定可能)ジョブレベルおよびステップごとのタイムアウト
典型的な用途今すぐアクションをトリガー(ロック、アンロック、再起動)フリートへの変更展開(ファームウェア更新、設定プッシュ)

Commands

Command は、単一の接続中のデバイスとのリアルタイムインタラクションです。Fleets は MQTT 経由でコマンドリクエストをデバイスにパブリッシュし、レスポンスを待ちます。実行は SENT 状態で開始し、デバイスが応答するか TTL が切れると、終了状態(SUCCEEDEDFAILEDREJECTEDTIMED_OUT、または CANCELED)に遷移します。

Commands は以下の場合に適しています:

  • 操作を受け取るためにデバイスがオンラインである必要がある
  • 即時のレスポンスが必要な場合
  • 操作対象が単一のデバイスである場合

詳細は Send Commands をご覧ください。

Jobs

Job は、1台以上のデバイスに非同期で送信される操作です。ジョブが保留中になるとデバイスに通知され、デバイスはジョブドキュメントを取得して実行し、ステータスを Fleets に報告します。各対象デバイスには独立した実行記録とステータスがあります。

Jobs は以下の場合に適しています:

  • 多数のデバイスに操作をプッシュしたい場合
  • デバイスが断続的にオフラインになる可能性がある場合(ジョブはキューイングされ、再接続時に配信される)
  • デバイスごとの実行進捗を時間をかけて追跡したい場合

詳細は Manage Jobs をご覧ください。

実行ステータス

Command 実行ステータス

ステータス意味
SENTコマンドがデバイスにパブリッシュされ、応答待ち
SUCCEEDEDデバイスが成功結果を返した
FAILEDデバイスが失敗を返した
REJECTEDデバイスがコマンドを拒否した
TIMED_OUTタイムアウト期間内に応答なし
CANCELEDコマンドがキャンセルされた

Job 実行ステータス

ステータス意味
QUEUEDジョブが保留中で、デバイスの取得待ち
IN_PROGRESSデバイスがジョブを開始した
SUCCEEDEDデバイスが正常に完了を報告した
FAILEDデバイスが失敗を報告した
REJECTEDデバイスがジョブを拒否した
TIMED_OUTデバイスがタイムアウト内にジョブを完了しなかった
CANCELEDクラウド側で実行がキャンセルされた
REMOVED実行記録が削除された

次のステップ