refactor: add TaskDispatcher for automatic task assignment to idle turtles

This commit is contained in:
MayaTheShy
2026-03-22 11:42:46 -04:00
parent 679a249f8b
commit 88163be0dd

View File

@@ -4,6 +4,7 @@ import cors from 'cors';
import { createServer } from 'http';
import * as db from './database.js';
import { Turtle } from './Turtle.js';
import { TaskDispatcher } from './TaskDispatcher.js';
const app = express();
const PORT = 3001;
@@ -78,6 +79,14 @@ for (const block of savedBlocks) {
// Timeout for considering turtles offline (30 seconds)
const TURTLE_TIMEOUT = 30000;
// Task dispatcher — automatically assigns pending tasks to idle turtles
const taskDispatcher = new TaskDispatcher({
turtles,
db,
broadcastToClients: (data) => broadcastToClients(data),
pollInterval: parseInt(process.env.DISPATCH_INTERVAL || '5000', 10),
});
// Broadcast to all web clients
function broadcastToClients(data) {
const message = JSON.stringify(data);