PM2 如何实现进程的定时任务

阅读时长 4 分钟读完

前言

在现代 web 应用中,常常需要定时执行一些任务,比如缓存更新、邮件发送等。实现方式有很多,但是我们推荐一个很好用的工具,就是 PM2。

PM2 是一个带有负载均衡功能的 Node.js 进程管理器,它可以帮助我们方便地管理 Node.js 进程,并且支持进程间的通信、负载均衡、错误监控等丰富的功能。其中,定时任务是其一个非常实用的功能。在接下来的文章中,我们将介绍如何使用 PM2 实现进程的定时任务。

环境准备

在开始之前,我们需要做一些环境准备:

  1. 安装 Node.js
  2. 安装 PM2(可以通过 npm 在命令行中安装)

实现进程的定时任务

在使用 PM2 实现进程的定时任务前,我们需要了解两个核心概念:

  1. cron 表达式(用于指定任务执行的时间)
  2. 任务文件(用于编写我们需要执行的任务)

cron 表达式

cron 表达式是一个用于定义周期性任务的时间表达式,它由五个或六个字段组成,分别表示任务的执行时间:

字段 范围 说明
1 0-59 分钟(0-59)
2 0-23 小时(0-23)
3 1-31 日期(1-31)
4 1-12 月份(1-12)
5 0-6 星期(0-6)
6 1970- 年份(可选)

cron 表达式的格式为:

-- -------------------- ---- -------
-    -    -    -    -    -
-    -    -    -    -    -
-    -    -    -    -    -
-    -    -    -    -    ------ ------------
-    -    -    -    ----------- -------------
-    -    -    ---------------- -------------
-    -    --------------------- -------------
-    -------------------------- -------------
------------------------------- ------

任务文件

任务文件是用于编写我们需要执行的任务的,它需要一个与文件名相同的导出函数,这个函数将被 PM2 调用。编写任务文件如下所示,以一个简单的例子为例:

PM2 定时任务

有了上面的知识储备,我们就可以开始使用 PM2 了。

添加定时任务

我们可以使用 PM2 的 pm2 schedule 命令来添加一个新的定时任务。命令格式如下:

其中,cron_string 是我们上面提到的 cron 表达式,path_to_script 是我们上面写的任务文件的路径。

例如,我们可以添加一个每分钟执行一次的任务,命令如下:

列出定时任务

可以使用 pm2 list 命令来查看当前所有任务的状态,包括定时任务。

删除定时任务

可以使用 pm2 unschedule 命令来删除一个定时任务,命令格式如下:

其中,job_idpm2 list 命令列出的任务 ID。

例如,我们可以删除上面的任务,命令如下:

总结

PM2 是一个非常强大的进程管理器,它支持很多实用的功能,其中包括定时任务。通过本文的介绍,我们了解了如何使用 PM2 添加、列出、删除定时任务。希望这篇文章对大家有所帮助。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64598639968c7c53b0b9f63d

纠错
反馈