Repository navigation
src_core_worker_pool
globalpocket edited this page Apr 11, 2026
·
1 revision
WorkerPool およびそれに付随する Huey タスクは、システムの 「Pull 型(非同期)タスク実行」 を支えるインフラ層を担当します。
-
タスクキューイング: Orchestrator (Main Process) からのタスク投入を受け、永続化された SQLite DB (
.brwn/huey.db) へ保存。 -
ワーカー管理: メインプロセスとは物理的に異なる Python プロセス(
huey.bin.consumer)でタスクを実行。 - 隔離実行: 各タスク実行ごとに Orchestrator コンテキスト(最小構成)を再構成し、LangGraph ワークフローをキック。
- 責務: Huey ワーカープロセスのエントリーポイント。
-
振る舞い:
-
asyncioイベントループを取得または新規作成。 - 環境変数
BROWNIE_CONFIGから設定を読み込み、Orchestratorインスタンスをワーカー専用に初期化。 -
orchestrator._execute_taskを非同期実行。 - LangGraph 側のチェックポインタ(SQLite)からタスクの状態を復旧・更新。
-
Orchestrator から Huey タスクを投入するためのプロキシクラス。
初期化引数:
-
project_root(str): プロジェクトのルートディレクトリ。
公開メソッド:
-
add_task(task_id, priority, repo_name, issue_number) -> Dict(async)-
振る舞い: Huey の
@huey.taskでラップされたexecute_task_wrapperを呼び出す。 -
出力:
{"task_id": ..., "status": "queued"}。
-
振る舞い: Huey の
-
run() -> subprocess.Popen(async)-
振る舞い:
- 別の OS プロセスとして Huey コンシューマーを起動。
- コマンド:
python -m huey.bin.consumer src.core.worker_pool.huey -w 1。 -
VRAM 保護: 推論リソース競合を避けるため、デフォルトはシングルワーカー (
-w 1) で動作。
-
振る舞い:
-
標準ライブラリ:
os,logging,subprocess,sys,asyncio -
外部依存:
huey.SqliteHueysrc.core.orchestrator.Orchestrator