> ## Documentation Index
> Fetch the complete documentation index at: https://supastack.dev/llms.txt
> Use this file to discover all available pages before exploring further.
> For the full documentation corpus in one file, fetch: https://supastack.dev/llms-full.txt

# バックグラウンドジョブのセットアップ

Trigger.dev による耐久性のあるタスク——加えてローカルスケジューラーの tick。

## インストールとセットアップ

手順の前に、[始める前に](https://supastack.dev/ja/docs/web/before-you-start.md) と [ターミナルの基本](https://supastack.dev/ja/docs/web/terminal-basics.md) をお読みください。これらの手順では、VS Code で完全な supastack モノリポジトリを開いたことが前提となっています。そのルート package.json はリポジトリのルートをマークします。 pnpm コマンドでは、ワークスペース パッケージはアプリまたは共有コード フォルダーです。この製品では、ワークスペースはチームのデータ コンテナであり、セキュリティ境界です。 corepack pnpm --filter ... コマンドがルートから実行されている間にモノリポジトリから 1 つのパッケージを選択します。同期されたモバイル フォルダーまたはデスクトップ フォルダーのみを開いた場合、そのフォルダーには Web バックエンド、Docker セットアップ、またはルート スクリプトが含まれていません。このモノリポジトリまたはアクセス可能なホスト サーバーからバックエンドを実行し、プラットフォーム フォルダー独自のスクリプトを使用します。環境変数は、ローカルの .env ファイルまたはホスティング ダッシュボードに保存される名前付き設定です。変更後に関連するアプリを再起動し、NEXT_PUBLIC_ および EXPO_PUBLIC_ 値にサーバー シークレットが含まれないようにします。

1. VS Code で apps/web/src/job-handlers.ts および apps/web/src/scheduler-runtime.ts を開きます。ジョブはバックグラウンド作業です。スケジューラはそれをいつエンキューするかを決定します。

2. ローカル ティックの場合、apps/web/.env.local とリポジトリ ルート .env に同じ SCHEDULER_TICK_SECRET を設定します。ティック スクリプトはルート .env を読み取り、Web エンドポイントはアプリ設定を読み取ります。

3. corepack pnpm --filter @supastack/web dev を使用して Web を起動し、次に corepack pnpm jobs:tick をルートから実行します。予想通り: 端末には、localhost:3000 からの POST 結果が表示されます。 Trigger.dev は別個のプロバイダーであり、独自のアカウントとサーバー キーが必要です。

本番タスク送信には JOB_PROVIDER=trigger とサーバー専用の TRIGGER_SECRET_KEY・TRIGGER_PROJECT_REF を設定します。ターゲットプロジェクトを設定する前に apps/web/trigger.config.ts と apps/web/trigger の ai.generate タスクを確認してください。

```
JOB_PROVIDER=trigger
TRIGGER_PROJECT_REF=your-project-reference
# Provide TRIGGER_SECRET_KEY through the server secret store.
# Local/self-hosted scheduler tick:
# SCHEDULER_TICK_SECRET=…
# SCHEDULER_TICK_URL=http://localhost:3000
```


## コピーするコマンド

コメントに従って、コマンドがどのフォルダーで実行されるかを確認します。 2 つのターミナルにラベルが付いている場合は、2 つのターミナル ウィンドウを開き、2 番目のコマンドを使用している間、最初のコマンドを実行し続けます。

```
# Terminal 1 — start the Web app from the monorepo root:
corepack pnpm --filter @supastack/web dev

# Terminal 2 — run one scheduler tick from the monorepo root:
corepack pnpm jobs:tick
```


## 実装ワークフロー

共有 JobRunner コントラクトは enqueue・status・cancel を約束します。ワークフロー固有の意味論は Trigger.dev に属します。汎用インターフェースからスケジューリング、リトライ、耐久性保証を推測しないでください。

アプリケーションの耐久タスク ID はディスパッチ、ワーカー実行、使用量レコード、結果を結びつけます。確認済み enqueue 後にプロバイダー実行メタデータの添付に失敗しても、別の enqueue を引き起こしたり受け入れられた作業を無効にしたりすべきではありません。


## 検証とトラブルシューティング

チェックマークが 404 を返した場合は、シークレットが両方の設定ファイルに存在し、正確に一致することを確認してから、Web を再起動します。端末に接続が拒否されたと表示された場合は、まず Web を起動してください。ジョブが実行されなかった場合は、スケジュールが有効になっていて期限があることを確認してください。 1 つのチェックマークを付けても、将来のスケジュールがすぐに実行されるわけではありません。

デプロイ済みタスク識別子とプロジェクトが設定済み環境と一致することを検証します。enqueue 受け入れをワークフロー完了とメール配信から分けます。作業を手動で再試行前に、安全な復旧と診断について docs/production-ai-runtime.md を読んでください。


設定を続けるには、[ファイルストレージのセットアップ](https://supastack.dev/ja/docs/web/setup-storage.md)をご覧ください。


## 次へ

[Trigger.dev ジョブ](https://supastack.dev/ja/docs/modules/jobs.md)
