昨天做Node项目时为了实现一个需求:
每天固定一个时间(比如10点),从redis里读取一个数据,给这个数据里的用户推送一条微信订阅消息;
谷歌一番,找到解决方案:crontab
下面就介绍一下如何用 crontab 实现一个定时任务(mac版本,linux基本一样)
1:查询crontab命令项,看看是否已经有定时任务在运行了
crontab -l
无命令运行中:crontab: no crontab for wujunjie
有命令运行中:* * * * * * node app.js ...
2:如果有命令运行且不是你想要的任务,可以执行删除操作;
crontab -r
3:打开任务编辑
打开任务编辑:crontab -e (会进入一个文本vim)
4:新增任务(脚本执行规则参考菜鸟教程)
* * * * * * node app.js
******是执行时间的规律,规则参考标题链接
node是执行语言环境 一定要是绝对路径,
比如/usr/local/bin/node 否则会报错node command not found
app.js即需要被执行的脚本 同样需要绝对路径
5:退出保存后即可
6:如果定时任务未执行,可以去查看执行日志
我的log位置是
/var/mail/admin
如果没有可以尝试查看
/var/spool/mail 和 /var/log/cron.log
至此执行一个定时任务完成啦 定时任务用处还是挺大的,比如定时发邮件,定时发个信息给女朋友...