refactor: add TaskDispatcher for automatic task assignment to idle turtles
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user