mcpField
E
effect-queues-background

effect-queues-background

github.com/mepuka開発537 回インストール44 週間前に更新
リポジトリ

effect-queues-background について

この Effect スキルは、TypeScript 開発者向けにキュー、PubSub、バックグラウンド Fiber を解説します。有界キューのバックプレッシャー、イベント配信、正常終了に加え、API 実装前にローカルの Effect ソースを確認する手順も扱います。

主な機能

  1. 01バックプレッシャー対応の有界キュー
  2. 02PubSub によるイベント配信
  3. 03バックグラウンド Fiber と中断
  4. 04ワーカー並行処理の指針
  5. 05ローカル Effect ソースの確認手順

活用シーン

  1. 01プロデューサーとコンシューマーの分離
  2. 02複数の購読者へのイベント配信
  3. 03正常終了可能なバックグラウンドループ
  4. 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
ワークフロー
  1. 必要な Queue または PubSub API を特定します
  2. docs/effect-source/effect/src/Queue.ts または PubSub.ts で実装を検索します
  3. 型とバックプレッシャーのパターンを調べます
  4. 使用例を確認するため、テストファイルを参照します
  5. 実際の実装に基づいてコードを書きます

実際のソースコード > ドキュメント > 推測

参考資料

コメント