php 实现定时任务
PHP 实现定时任务的方法
PHP 本身是脚本语言,通常需要借助外部工具或框架来实现定时任务。以下是几种常见的实现方式:
使用 Cron 任务
Cron 是 Linux 系统的定时任务工具,可以定期执行 PHP 脚本。
在终端输入 crontab -e 添加 Cron 任务:
* * * * * /usr/bin/php /path/to/your/script.php
五个星号分别代表分钟、小时、日、月、星期,例如每天凌晨执行:

0 0 * * * /usr/bin/php /path/to/your/script.php
使用 PHP 的 sleep 函数
在脚本中通过循环和 sleep 实现简单的定时任务:
<?php
while (true) {
// 执行任务逻辑
echo "Task executed at " . date('Y-m-d H:i:s') . "\n";
// 休眠 60 秒
sleep(60);
}
这种方式适合简单的测试场景,但会持续占用资源。

使用 Laravel 任务调度
Laravel 框架提供了内置的任务调度功能,通过 app/Console/Kernel.php 配置:
protected function schedule(Schedule $schedule) {
$schedule->command('your:command')->daily();
$schedule->call(function () {
// 自定义任务逻辑
})->hourly();
}
需要在服务器 Cron 中添加以下条目:
* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1
使用第三方库
例如 symfony/process 或 react/event-loop 实现更复杂的定时任务:
use React\EventLoop\Factory;
$loop = Factory::create();
$loop->addPeriodicTimer(60, function () {
// 每分钟执行的任务
});
$loop->run();
注意事项
- 确保 PHP 脚本具有可执行权限。
- 长时间运行的脚本需注意内存泄漏问题。
- 生产环境推荐使用 Cron 或 Laravel 调度等成熟方案。






