effect-queues-background について
この Effect スキルは、TypeScript 開発者向けにキュー、PubSub、バックグラウンド Fiber を解説します。有界キューのバックプレッシャー、イベント配信、正常終了に加え、API 実装前にローカルの Effect ソースを確認する手順も扱います。
主な機能
- 01バックプレッシャー対応の有界キュー
- 02PubSub によるイベント配信
- 03バックグラウンド Fiber と中断
- 04ワーカー並行処理の指針
- 05ローカル Effect ソースの確認手順
活用シーン
- 01プロデューサーとコンシューマーの分離
- 02複数の購読者へのイベント配信
- 03正常終了可能なバックグラウンドループ
- 04実装前の Effect ソース確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ mepuka/ effect-ontology --skill effect-queues-backgroundインストール後、Claude Code で/effect-queues-backgroundを入力して読み込まれたか確認します。
詳細
キュー、PubSub、バックグラウンド処理
使用する場面
- バックプレッシャーを適用して、プロデューサーとコンシューマーを分離する
- 複数のサブスクライバーにイベントをブロードキャストする
- 適切なシャットダウン処理を行いながら、バックグラウンドループを実行する
キュー(有界)
import { Queue } from "effect"
const q = yield* Queue.bounded<string>(32)
yield* Queue.offer(q, "job")
const job = yield* Queue.take(q)
PubSub(ブロードキャスト)
import { PubSub } from "effect"
const ps = yield* PubSub.bounded<string>(32)
yield* PubSub.publish(ps, "evt")
バックグラウンド Fiber
const fiber = yield* Effect.fork(loop)
yield* Fiber.interrupt(fiber)
ガイダンス
- 自然なバックプレッシャーを適用するため、有界キューを優先してください
- コンシューマーをフォークして複数のワーカーを使用してください
- シャットダウン時にバックグラウンド Fiber が中断されることを確認してください
注意点
- 無制限のキューはメモリの増加につながります
- バックグラウンドでの障害が見過ごされないよう、ログやメトリクスを追加してください
関連リンク
- プールと中断については Concurrency を参照してください
- バックグラウンドタスクの可観測性については Time/Logging を参照してください
ローカルソースの参照
重要:実装する前に、ローカルの Effect ソースを検索してください
Effect のソースコード全体は docs/effect-source/ にあります。Effect のコードを書く前に、必ず実際の実装を検索してください。
主なソースファイル
- Queue:
docs/effect-source/effect/src/Queue.ts - PubSub:
docs/effect-source/effect/src/PubSub.ts - Fiber:
docs/effect-source/effect/src/Fiber.ts
検索例
# Find Queue patterns
grep -F "bounded" docs/effect-source/effect/src/Queue.ts
grep -F "offer" docs/effect-source/effect/src/Queue.ts
grep -F "take" docs/effect-source/effect/src/Queue.ts
# Study PubSub operations
grep -F "publish" docs/effect-source/effect/src/PubSub.ts
grep -F "subscribe" docs/effect-source/effect/src/PubSub.ts
# Find background fiber patterns
grep -F "fork" docs/effect-source/effect/src/Fiber.ts
grep -F "interrupt" docs/effect-source/effect/src/Fiber.ts
# Look at Queue test examples
grep -F "Queue." docs/effect-source/effect/test/Queue.test.ts
ワークフロー
- 必要な Queue または PubSub API を特定します
docs/effect-source/effect/src/Queue.tsまたはPubSub.tsで実装を検索します- 型とバックプレッシャーのパターンを調べます
- 使用例を確認するため、テストファイルを参照します
- 実際の実装に基づいてコードを書きます
実際のソースコード > ドキュメント > 推測
参考資料
- Agent Skills の概要:https://www.anthropic.com/news/skills
- Skills ガイド:https://docs.claude.com/en/docs/claude-code/skills
コメント
Markdown 対応