以下是一个简单的PHP调度器实例,用于管理任务的执行。该调度器可以定时执行一些任务,如发送邮件、更新数据库等。
| 功能 | 描述 |
|---|---|
| 启动调度器 | 使用cron任务启动调度器 |
| 添加任务 | 将任务添加到调度器中 |
| 执行任务 | 检查并执行已添加的任务 |
| 查看任务列表 | 显示所有已添加的任务 |
```php

class Scheduler {
private $tasks = [];
public function addTask($taskName, $className, $method, $interval, $args = []) {
$this->tasks[] = [
'name' => $taskName,
'className' => $className,
'method' => $method,
'interval' => $interval,
'args' => $args
];
}
public function executeTasks() {
foreach ($this->tasks as $task) {
$className = $task['className'];
$method = $task['method'];
$args = $task['args'];
$reflection = new ReflectionClass($className);
$instance = $reflection->newInstanceArgs($args);
$instance->$method();
}
}
public function getTaskList() {
return $this->tasks;
}
}
// 示例:添加一个发送邮件的任务
$scheduler = new Scheduler();
$scheduler->addTask('sendEmail', 'EmailSender', 'send', 3600, ['to' => 'example@example.com', 'subject' => 'Test Email', 'body' => 'This is a test email']);
// 执行任务
$scheduler->executeTasks();
// 查看任务列表
print_r($scheduler->getTaskList());
>
```
要启动调度器,您需要在服务器的crontab文件中添加一条命令,如下所示:
```
*/5 * * * * /usr/bin/php /path/to/your/scheduler.php
```
这将每5分钟执行一次`scheduler.php`文件,从而启动调度器。注意,您需要将`/path/to/your/scheduler.php`替换为您的`scheduler.php`文件的实际路径。




