<?php
class TaskQueue {
private $tasks = [];
public function enqueue(string $taskName, int $time, array $flags = []): void {
// Add task to the queue
$this->tasks[] = [
'name' => $taskName,
'time' => $time,
'flags' => $flags,
];
}
public function runTasks(): void {
$now = time();
foreach ($this->tasks as $task) {
// Check if the task is due
if ($now >= $task['time']) {
echo "Running task: " . $task['name'] . "\n";
// Simulate task execution
if (!empty($task['flags']['debug'])) {
echo "Debug mode enabled.\n";
}
// Remove the task from the queue
unset($this->tasks[array_search($task, $this->tasks)]);
}
}
}
}
// Example Usage
$queue = new TaskQueue();
$queue->enqueue('Backup Database', time() + 60, ['debug' => true]); // Run in 1 minute, debug mode
$queue->enqueue('Send Report', time() + 120); // Run in 2 minutes
$queue->enqueue('Update Cache', time() + 180, ['urgent' => true]); // Run in 3 minutes, urgent flag
// Run the tasks
$queue->runTasks();
?>
Add your comment