上一篇爬取澎湃热榜里说到node-schedule定时任务,但在白嫖Vercel无服务函数时并不会执行这个包,无奈只能另想它法

这里使用免费的github actions

首先在仓库下新建文件.github/workflows/abc.yml,文件名随便取

name: coupons //自定义
on:
  schedule:   
    - cron: '5 7-23 * * *' //cron表达式,用于将任务放置队列
  workflow_dispatch: //定义这个可以手动执行,否者不会显示手动执行按钮
jobs:
  run-coupons: //这个也可以自定义,只是显示
    runs-on: ubuntu-latest //运行在最新ubuntu
    steps: // 这个就是执行步骤
      - uses: actions/checkout@master
      - name: Setup Node.js
        uses: actions/setup-node@v2 //设置运行时的nodejs环境
        with:
          node-version: '16' // 16版本的nodejs
      - name: Install Dependency       
        run:
          npm install axios //不push node_modules就要安装
          node ./index.js //运行根目录index.js文件

在本地push到仓库时,如果不push node_modules模块文件夹,那就需要在添加npm install 模块名,比如index.js要用到axios,那就npm install axios去安装。还有push package.json,那么只需要npm install就会安装全部依赖

重要的提示一下,设置的cron表达式并不是说设置了 0 * * * *就会每小时0分执行脚本,它只是把执行放入队列,真正执行可能时稍后几分钟,或者不会执行,想精确定时任务这种是达不到要求的