branch:
fanout-worker-agent.ts
825 bytesRaw
import { PlaygroundAgent as Agent } from "../../shared/playground-agent";
export interface WorkerResult {
workerId: string;
items: string[];
processed: string[];
duration: number;
}
export class FanoutWorkerAgent extends Agent<Env> {
async processChunk(workerId: string, items: string[]): Promise<WorkerResult> {
const start = Date.now();
const processed = items.map((item) => {
const trimmed = item.trim();
const upper = trimmed.toUpperCase();
const reversed = trimmed.split("").reverse().join("");
return `${upper} (${trimmed.length} chars, reversed: ${reversed})`;
});
await new Promise((resolve) =>
setTimeout(resolve, 200 + Math.random() * 300)
);
return {
workerId,
items,
processed,
duration: Date.now() - start
};
}
}