要在 Laravel 中设置定时任务并使用 PM2 进行管理,这是个好想法,
以下步骤:
- 在 Laravel 中创建定时任务
使用 php artisan make:command
命令创建一个新的 Artisan 命令,该命令将执行您希望在后台运行的代码。例如,您可能想要每分钟调用一个 API 来更新数据库中的数据。
php artisan make:command FetchApiData
然后,在新创建的 FetchApiData
命令类的 handle
方法中编写您需要执行的代码。
public function handle()
{
// Your code here
}
接下来,在 AppConsoleKernel.php
文件中注册您的定时任务。这可以通过在 $schedule
属性中添加任务来完成。例如:
protected function schedule(Schedule $schedule)
{
$schedule->command('fetch:api')->everyMinute();
}
这个例子中将会每分钟执行 FetchApiData
命令。
- 安装 PM2
安装 Node.js 后,使用 npm 或 yarn 安装 PM2。
代码语言:shell复制npm install pm2 -g
- 创建 PM2 配置文件
在 Laravel 项目根目录中创建一个新的 pm2.config.js
文件,并将以下内容添加到文件中:
module.exports = {
apps: [
{
name: "Laravel Task Scheduler",
script: "artisan",
args: "schedule:run",
watch: true,
ignore_watch: ["storage"],
autorestart: true,
env: {
APP_ENV: "production",
},
},
],
};
这个配置文件将启动 Laravel 的 Artisan 命令,并使 PM2 每分钟运行一次 php artisan schedule:run
命令。
- 启动 PM2 进程
使用以下命令启动 PM2 进程:
代码语言:shell复制pm2 start pm2.config.js
这将使用您的 pm2.config.js
文件中的配置启动一个新的 PM2 进程。
现在,当您的服务器运行时,Laravel 的定时任务将由 PM2 管理,并且每分钟都会自动运行。您可以使用 pm2 logs
命令来查看日志,并使用 pm2 stop
命令停止进程。