How the pool works
The recipe’sWarmPool helper starts the configured number of sandboxes and runs
a readiness check in each. Their main processes stay running between commands.
No periodic ping is needed.
Each workload claims one ready sandbox, triggering preparation of a replacement.
Every exec() within that claim shares the same sandbox and files. When the
workload finishes or fails, the helper stops its sandbox. Subsequent workloads
receive separate sandboxes, so they don’t inherit previous workloads’ local state.
Run the recipe
You need Python 3.11+,uv,
and serverless access and credentials.
-
Download or clone the recipe repository and open
recipes/warm-pool. Install dependencies and create your environment file:
-
demo.pyの先頭付近で、AUTHをAuthStrategy.WANDBに設定します。W&B の APIキーをWANDB_API_KEYとして.envに追加するか、既存の W&B のログイン情報を使用します。 -
W&B 認証を使用して比較を実行します。W&B 認証には、対応するオプションの依存関係が必要です。
Adapt the pool to your workload
Edit the constants indemo.py:
WORKLOAD in demo.py with your code. Add shared setup to prepare() in
warm_pool.py and use a readiness check appropriate for your application. Within
an asynchronous workload handler, use the recipe’s claim context for multiple
commands:
Keep the pool running
Keep the pool and enclosingSession contexts open while accepting requests.
Each Python process owns a separate pool. The demo closes both after its comparison.
The helper replaces idle sandboxes at 5 minutes. Each sandbox has a 10-minute
lifetime. The pool continues replenishing while its context is open. Keep jobs
comfortably under 5 minutes with these defaults: claiming a sandbox doesn’t
reset its deadline. For longer-job settings and cleanup after interrupted runs,
see the recipe.
Transient preparation failures get up to three attempts. If those attempts are
exhausted or preparation encounters a non-retryable error, all further claims fail,
even if ready sandboxes remain. Exit the pool and Session contexts to clean up,
then create a new pool when the underlying issue is resolved.
補充にかかる時間を短縮するには、変更頻度の低い依存関係をあらかじめイメージに組み込んでおくか、
準備済みのワークスペースファイルをファイルシステムスナップショットからリストアします。
スナップショットが取得するのは、設定したマウント内のファイルです。アプリケーションのプロセスは
別途起動する必要があります。