前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >要在 Laravel 中设置定时任务并使用 PM2 进行管理

要在 Laravel 中设置定时任务并使用 PM2 进行管理

原创
作者头像
Bolton
修改2023-05-31 13:26:58
7710
修改2023-05-31 13:26:58
举报
文章被收录于专栏:php&laravel

要在 Laravel 中设置定时任务并使用 PM2 进行管理,这是个好想法,

以下步骤:

  1. 在 Laravel 中创建定时任务

使用 php artisan make:command 命令创建一个新的 Artisan 命令,该命令将执行您希望在后台运行的代码。例如,您可能想要每分钟调用一个 API 来更新数据库中的数据。

代码语言:shell
复制
php artisan make:command FetchApiData

然后,在新创建的 FetchApiData 命令类的 handle 方法中编写您需要执行的代码。

代码语言:php
复制
public function handle()

{

    // Your code here

}

接下来,在 App\Console\Kernel.php 文件中注册您的定时任务。这可以通过在 $schedule 属性中添加任务来完成。例如:

代码语言:php
复制
protected function schedule(Schedule $schedule)

{

    $schedule->command('fetch:api')->everyMinute();

}

这个例子中将会每分钟执行 FetchApiData 命令。

  1. 安装 PM2

安装 Node.js 后,使用 npm 或 yarn 安装 PM2。

代码语言:shell
复制
npm install pm2 -g
  1. 创建 PM2 配置文件

在 Laravel 项目根目录中创建一个新的 pm2.config.js 文件,并将以下内容添加到文件中:

代码语言:javascript
复制
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 命令。

  1. 启动 PM2 进程

使用以下命令启动 PM2 进程:

代码语言:shell
复制
pm2 start pm2.config.js

这将使用您的 pm2.config.js 文件中的配置启动一个新的 PM2 进程。

现在,当您的服务器运行时,Laravel 的定时任务将由 PM2 管理,并且每分钟都会自动运行。您可以使用 pm2 logs 命令来查看日志,并使用 pm2 stop 命令停止进程。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档