クラウド・インフラ

ディレイ / スリープノード

Delay / Sleep Node

ワークフロー自動化で実行を一時停止する機能。APIレート制限の回避や外部プロセス完了の待機に使用します。

ディレイノード スリープノード ワークフロー自動化 レート制限 オーケストレーション
作成日: 2025年12月19日 更新日: 2026年4月2日

ディレイ / スリープノードとは?

ディレイ(遅延)またはスリープノードは、ワークフロー実行を一定期間止めるコンポーネントです。 ワークフロー自動化ツール(n8n、Make、AWS SSMなど)でビジュアルノードとして提供され、設定した秒数だけ処理を停止します。JavaScriptではPromiseやasync/awaitを使って同様の機能を実装します。

ひとことで言うと: レストランで「15分待ってから呼び出す」という仕組みと同じように、自動化ツールで「ここで○秒待機してから次に進む」と指示するものです。

ポイントまとめ:

  • 何をするものか: ワークフロー内で実行を一時停止する機能
  • なぜ必要か: APIレート制限回避や外部システムの処理完了を待つため
  • 誰が使うか: ワークフロー設計者、自動化エンジニア

なぜ重要か

APIサーバーには呼び出し数の制限(レート制限)があります。短時間に大量のリクエストを送ると、サーバーはそれ以上のリクエストを拒否します。ディレイノードを使い、リクエスト間に遅延を挿入すれば、このような制限に引っかかるのを防げます。

また、ファイルアップロードや決済処理など、時間がかかる外部プロセスの完了を待つときにも使います。完了を待たずに次のステップに進むと、不完全なデータが渡されるリスクがあります。ディレイノードでポーリング(定期的な確認)を実装することで、確実に完了を待つことができます。

仕組みをわかりやすく解説

ディレイノードの動作は単純です。設定した時間だけ、次のステップへの処理を停止します。ワークフロー全体は停止せず、その特定のフローだけが待機状態になります。

典型的な使い方は固定遅延条件付き遅延の2パターンです。固定遅延は「常に5秒待つ」というように、毎回同じ時間待機します。条件付き遅延は「ステータスが『完了』になるまで1分ごとにチェック」というように、特定の条件に達するまで定期的に確認を繰り返します。後者はポーリングと呼ばれ、外部API呼び出しの結果を待つときに多く使われます。

ワークフロー内で複数のディレイノードを組み合わせることもあります。例えば「メール送信→5秒待機→別のAPI呼び出し→10秒待機→最終確認」というように、段階的に処理を進める場合です。

実際の活用シーン

APIレート制限の回避

外部APIに1秒あたり10リクエストという制限があります。1000件のデータを一括処理する場合、0.1秒間隔で順次送信すると制限に引っかかります。リクエスト間に500ミリ秒のディレイを挿入することで、1秒あたり2リクエストに調整でき、制限内で安全に処理できます。

ファイルアップロード待機

クラウドストレージにファイルをアップロードして、その後ウイルススキャンの完了を待ちます。スキャン結果を確認するAPIを30秒ごとにポーリング(5回まで)することで、結果の確実な取得を実現します。

メール送信の間隔調整

大量のメール配信で相手先サーバーに負荷をかけないよう、メール送信と送信の間に2秒のディレイを挿入します。これにより、1通あたり確実に配信でき、スパム判定されるリスクも低下します。

メリットと注意点

ディレイノードのメリットは、複雑なエラーハンドリングなしにレート制限を回避できることです。APIのドキュメントを読んで制限値を確認し、適切なディレイを設定するだけで対応できます。

注意点としては、ディレイが長すぎるとワークフロー全体の実行時間が大幅に延びることです。1000件のデータを1件ごと2秒待機で処理すると、合計2000秒(33分以上)かかります。本当に必要な遅延かどうか、事前に確認することが大切です。また、外部システムが応答しない場合、永遠に待機し続けるリスクもあるため、タイムアウト設定と組み合わせることが重要です。

関連用語

  • ワークフロー自動化 — ディレイノードは、ワークフロー自動化ツールの基本的なコンポーネント
  • API — ディレイはAPIのレート制限に対応するために使用される
  • ポーリング — ディレイと組み合わせて外部システムの状態を定期確認する手法
  • 非同期処理 — JavaScriptでのディレイ実装は非同期パターンを使用
  • タイムアウト — ディレイと一緒に使われ、無限待機を防ぐ機能

よくある質問

Q: ディレイはどのぐらいの長さに設定すればいいですか?

A: APIのドキュメントに「1分あたり60リクエスト」と書いてあれば、1秒待機すればOK(1リクエスト+1秒待機=約60リクエスト/分)です。データ量が多い場合は、テスト環境で実際に試して、エラーが出ない最短時間を見つけることをお勧めします。

Q: ポーリングでずっと待機し続けることはありませんか?

A: その通りです。そのため「最大5回まで、1分ごとにチェック」というように、試行回数と待機時間の上限を設定することが重要です。無制限にポーリングするとワークフローが永遠に停止する可能性があります。

Q: 複数のディレイを並行実行できますか?

A: はい。並行実行ツール(例:n8nのsplit)ノード)を使えば、複数フローを同時に処理でき、合計時間を短縮できます。ただしAPIの総リクエスト制限に注意が必要です。

関連用語

GitHub Actions

GitHub Actionsは、GitHubリポジトリ内でワークフローを自動化するCI/CDプラットフォームです。ビルド、テスト、デプロイメントを自動で実行し、開発の効率化を実現します。...

Asana

チームがプロジェクトを管理し、タスクを追跡し、協力するためのWebベースのプロジェクト管理プラットフォームです。...

×
お問い合わせ Contact