mcpField
R
render-background-workers

render-background-workers

github.com/render-ossクラウド・DevOps90371 回インストール今日更新
リポジトリ

render-background-workers について

Render 上のバックグラウンドワーカーを設計・運用する人向けのガイドです。キューフレームワーク、Key Value、Blueprint、グレースフルシャットダウン、ワーカー・Cron Job・Workflow の選択を扱います。

主な機能

  1. 01キューワーカーのポーリング方式の説明
  2. 02Celery、Sidekiq、BullMQ などの紹介
  3. 03ジョブブローカーとしての Key Value の設定
  4. 04Blueprint によるサービス設定
  5. 05グレースフルシャットダウンとジョブ処理

活用シーン

  1. 01常時稼働するキューコンシューマーの設定
  2. 02Redis キュー用 Key Value の構成
  3. 03デプロイ中に実行中のジョブを完了またはチェックポイント保存
  4. 04ワーカー、Cron Job、Workflow の選択

MCP 対応

このスキル自体は MCP サーバーではありません。関連するデプロイ作業として Render MCP/Dashboard フローに触れていますが、MCP インターフェースの機能は説明していません。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/render-oss/skills --skill render-background-workers

インストール後、Claude Code で/render-background-workersを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
deployments.md
graceful-shutdown.md
private-networking.md
queue-framework-setup.md
service-types.md

詳細

Render のバックグラウンドワーカー

このスキルでは、HTTP を処理するのではなく、キューからジョブを消費するプロセスである、Render のワーカーサービスについて説明します。render.yaml とプライベート接続を設定する際は、render-blueprints、render-env-vars、render-networkingと併用してください。

使用する場面

  • キューを使うワーカー(Celery、Sidekiq、BullMQ、Asynq など)の設計やデバッグ
  • バックグラウンド処理にワーカー、Cron Job、Workflowのどれを使うか選ぶとき
  • Render Key Valueをキャッシュではなくブローカーとして、適切なエビクションポリシーで設定するとき
  • デプロイ中に処理中のジョブが失われないよう、グレースフルシャットダウンを実装するとき

フレームワークごとの設定とシグナル処理の詳細:references/queue-framework-setup.md、references/graceful-shutdown.md。

デプロイ、再起動、またはシャットダウン動作の変更前に、references/deployments.mdを読んでください。 ワーカーのアウトバウンドプライベートネットワーク接続を設定またはトラブルシューティングする前に、references/private-networking.mdを読んでください。 ワーカー、Cron Job、Workflow のどれを使うか選ぶ際は、references/service-types.mdを読んでください。

ワーカーの仕組み

  • インバウンド(HTTP)トラフィックを受け取らない長時間稼働するサービスです。Render は、Web サービスやプライベートサービスのように、ワーカーにパブリック URL や内部ホスト名を公開しません。つまり、ワーカーはワーカー宛てのプライベートネットワークトラフィックを受信できません。
  • 一般的なパターンはポーリングループです。プロセスがキューバックエンド(多くの場合、Redis 互換のValkey 8であるRender Key Value)に接続し、ジョブを取得します。
  • ワーカーはプライベートネットワーク経由で、PostgreSQL、Key Value、プライベートサービス、Web サービス(内部 URL)、およびパブリックインターネットへのアウトバウンド接続を開始できます。プランとファイアウォールルールが適用されます。

キューフレームワークの概要

フレームワーク言語キューバックエンド備考
CeleryPythonKey ValuePython で最も一般的なタスクキュー
SidekiqRubyKey ValueRails の標準
BullMQNode.jsKey Valueモダンな Node キュー
AsynqGoKey ValueGo の非同期タスク処理
ObanElixirPostgres(Key Value キューではありません)キューはデータベースに保存されます

Key Value との連携

  • フレームワークが Redis を必要とする場合、Render Key Valueをジョブブローカーとして使用してください。
  • maxmemory ポリシーを**noevictionに設定してください。allkeys-lruなどのポリシーはキャッシュ**向けです。キューキーがエビクトされると、ジョブが失われます。
  • Blueprint で type: keyvalue と property: connectionString を指定した **fromService**を使い、REDIS_URL(またはフレームワークに応じた同等の環境変数)を設定してください。
  • Blueprint では Key Value に ipAllowList が必要です。インスタンスへの接続を許可する CIDR を含めてください(プライベートネットワークのみでアクセスする場合は、多くの場合 [] です。render-blueprints/Key Value フィールドのリファレンスを参照)。

最小限のアプリと YAML の例については、references/queue-framework-setup.mdを参照してください。

ワーカー、Cron、Workflow の比較

必要なもの使用するもの理由
常時稼働するキューコンシューマーBackground Worker継続的にポーリングする長時間稼働プロセスです
定期的にスケジュールされたタスクCron Jobスケジュールに従って実行され、終了します。1 回の実行は最大 12 時間です
分散並列計算Workflow実行ごとに専用のインスタンスが割り当てられ、ファンアウトパターンに対応します
大量またはバースト性のあるジョブWorkflow継続稼働するワーカーインスタンスを使わず、実行ごとにスケールします

グレースフルシャットダウン

  • ワーカーは、(1)新しいジョブの受け付けを停止し、(2)現在のジョブを完了するか進捗をチェックポイントに保存し、**(3)接続を閉じ、(4)**終了コード 0で終了してください。
  • Render の現在の処理停止、シグナル、シャットダウン遅延の動作については、references/deployments.mdに従ってください。

言語およびフレームワーク固有のハンドラー:references/graceful-shutdown.md。

Blueprint の設定

最小構成のパターンは、type: worker、runtime、buildCommand、startCommand、および Key Value から設定する**envVars**です。

services:
  - type: keyvalue
    name: jobs
    plan: starter
    region: oregon
    maxmemoryPolicy: noeviction
    ipAllowList: []

  - type: worker
    name: task-worker
    runtime: python
    region: oregon
    plan: starter
    buildCommand: pip install -r requirements.txt
    startCommand: celery -A tasks worker --loglevel=info
    envVars:
      - key: REDIS_URL
        fromService:
          name: jobs
          type: keyvalue
          property: connectionString

オプション:処理停止に時間がかかるジョブ向けに、ワーカーサービスで**maxShutdownDelaySeconds**を設定できます。

参考資料

トピックファイル
Celery、Sidekiq、BullMQ、Asynq、Oban のセットアップと YAMLreferences/queue-framework-setup.md
SIGTERM、maxShutdownDelaySeconds、言語ごとのパターンreferences/graceful-shutdown.md
デプロイのライフサイクル、シャットダウン、再起動、検証references/deployments.md
プライベートネットワークの範囲、内部アドレス、トラブルシューティングreferences/private-networking.md
サービスタイプの選択と実行モデルreferences/service-types.md

関連スキル

  • render-deploy — 初回デプロイ、CLI、サービスの作成
  • render-blueprints — render.yaml の完全なスキーマ、fromService、プロジェクト
  • render-networking — プライベート URL、呼び出し可能な対象
  • render-scaling — ワーカープラン、インスタンス数、制限

現行ドキュメントの取得

このスキルで現行の Render ドキュメントを参照するよう指示された場合は、必ず次の手順に従ってください。

  1. curl など、利用可能な URL 取得ツールまたは HTTP クライアントを使って、リンク先の Markdown ドキュメントを直接取得してください。ウェブ検索の要約でドキュメントを代用しないでください。
  2. 取得に成功し、想定したドキュメントが返されたことを確認してから、内容を読んでください。ファイルを保存したり、そのパスを表示したりするだけでは不十分です。
  3. リクエストに失敗した場合、またはツールで Markdown の応答を読み取れない場合は、リンク先の HTML 版を開いて読んでください。
  4. どちらの版も取得できない場合は、現行の参照資料が利用できないことを明示し、そのスキルに記載されたトピック固有の代替手順に従ってください。安定した制約に限って同梱のガイダンスを使用し、変更される可能性のあるプラットフォームの詳細を推測しないでください。

複数の参照資料が必要なタスクでは、それぞれについてこの手順を適用し、確認済みのドキュメントと利用できないドキュメントを区別してください。

コメント