背景

最近项目上不太忙,决定利用这难得的空闲时间把之前一直看的nodeJs充分利用下,于是打算写一个钉钉机器人项目,在每天指定的时间来提醒一些事项。

代码逻辑

说干就干,怎么申请并向群里添加机器人之类的就不赘述了,有心的可以百度或参考官方教程。整个代码的逻辑很简单:使用superagent作为代理来发起请求,在指定的时间里调用接口发送消息就可以了。

因为本身是一个node小白,所以还是踩了不少坑的。。。

最开始使用setinterval函数来处理每天的定时发送,又因为只需要工作日发送,有需要调用第三方接口来判断当前日期是否为工作日。 用setInterval接口又需要一直去轮训判断小时和分钟是否符合预定义的时间,感觉有点傻。。。
一下是原始判断时间的代码:

function isTimeNow() {let text = '';const now = moment();const hour = now.hour();const minute = now.minute();logger.info(`当前是当天的第${hour}个小时`);if (hour === 9 && minute > 10 && minute < 20) { // 9:10 -- 9:20 之间text = '上班了,别忘记打卡了..';} else if (hour === 18 && minute > 30 && minute < 40) { // 6:30-6:40 之间text = '下班了,别忘记打卡了..';}logger.info(`需要发送的消息内容为: ${text}`);if (text) {sendMsg(text, webhock);}
}

还可以优化

之前用过java来使用corn去执行定时任务,想着node也应该是支持的,搜索后发现,果不其然,发现了node-schedule库就是一个支持corn来执行定时任务。果断抛弃setInterval。 这样一来代码就省去了大量判断时间的代码,直接初始化一个任务,一行搞定:

schedule.scheduleJob('00 30 9 * * *', doSchedule);

怎么失败了

ok,到此为止,代码基本完成, 接下来就是去部署执行了,首先在本地终端使用node去执行脚本,群里果然收到消息,一切正常,完美! 顺利部署到云端(腾讯云),也正常收到消息,简直完美!!可以去溜达一圈了?

溜达一圈回来后,悲剧了,本来轮序的消息,怎么轮序了一段时间后没有了? 服务器关掉了? 被人黑掉了?

鉴于这个项目的价值,被人黑掉的可能性基本不存在,腾讯云一般应该不会死掉。。。有个著名的小学生说过:排除一切可能后,最不可能的就是真相。 真相是残酷的:出bug了。。。

调bug吧,调了半天发现没问题,看进程,发现腾讯云远程在一段时间后会自动断开连接,再次连接上后原来的进程就被关掉了。。。。

搜索后发现,原来进程还有后台和前台之分(又涨姿势了)。在终端里执行的命令,在终端关闭后也就关闭了。 要想不关闭,是不能简简单单使用node命令的。。。

问题明白了,解决起来很快的,在终端执行以下命令:

node index.js & // 启动后台基础
disown // 前置转为后台进程ps -ax: 查看所有进程信息
ps -f -C node: 查看node信息

参考链接

不足之处

暂时这个东西是满足需求了。但因为所有提示信息都是写死的,如果有时候想调整信息内容怎么办?

下一步可以把发送的消息内容放在一个json文件里, 使用express搭建一个简单的服务,在页面上提交表单来修改发送内容,也可以提供页面来直接发送消息而不用等轮序。。。

那就是下一个文章的内容了。。。

记一次自动提醒钉钉机器人的诞生相关推荐

  1. 配置 Hi提醒 让直播提醒机器人消息在主播开播自动推送消息到钉钉群

    今天我们来配置Hi提醒 实现指定主播开播时推送直播提醒消息到钉钉群 主要实现是创建好钉钉群机器人,然后推送信息时选择钉钉就行了. 该通道配置完成后可推送信息至你的钉钉群中,一次配置持久使用. 直接看操 ...

  2. 易班自动打卡+钉钉机器人消息提醒

    (一)声明 本文仅供学习交流使用,如有发热.感冒.咳嗽请及时根据当地疫情防控办法及时上报 (二)需求 首先,我双手支持和配合学校相关疫情防控政策. 其次,每天重复劳动让我们软件专业情何以堪.说干就干, ...

  3. python之钉钉机器人自动发消息——傻瓜式教程

    文章目录 python之钉钉机器人自动发消息--傻瓜式教程 前言 钉钉创建机器人 主要流程如下: 细节流程如下 python连接dingtalk 发送MarkDown格式消息 源码展示 效果展示 代码 ...

  4. 钉钉机器人智能提醒_如何设置钉钉群通知

    ## 一.功能说明: 独创通过**钉钉群**或**企业微信群**实时通知 1.通知软件异常状态,如:微信掉线,联盟离线,授权过期等 2.手动提现审核通知(提现走手动,每一笔都会自动通知管理员) 3.自 ...

  5. Android——Gradle自动打包上传蒲公英并进行钉钉群提醒

    开发测试阶段频繁打包未免太过枯燥,自动打包发布解放双手.上一节我们分析了fastlane打包发布的过程,嗯~总体来说有点繁琐,而且Android使用fast lane自动打包网上资料比较少,出错之后解 ...

  6. 钉钉机器人自动推送股票信息

    项目时间和要求 马上五一了,估计很多小伙伴会休假!我们时间稍晚长一点 ,4/29-5/11.给大家两周的时间完成. 这虽然是一个小系统,但是玩好了,可以做各种好玩的东西. 为了照顾新手同学,我把这个项 ...

  7. python自动化办公 51cto_用Python开发钉钉群机器人,自动办公神器

    最近疫情比较严重,很多公司依靠阿里旗下的办公软件钉钉来进行远程办公,虽然钉钉别的功能很鸡肋,但是机器人这个功能还是让人眼前一亮,属于比较极客的功能,它可以将第三方服务的信息聚合到钉钉群中,实现信息的自 ...

  8. 钉钉机器人实现打卡提醒定时任务

    文章目录 前言 一.需要准备什么? 二.使用步骤 1.开启自定义群机器人 2.使用钉钉开放平台的在线调试 三.代码实现 1.引入第三方钉钉jar包 2.测试机器人发送信息是否成功 3.获取部门用户us ...

  9. 监测网页内容变化,推送钉钉机器人提醒

    钉钉群提供自定义机器人接口,可以调用该接口向群内发送消息. 1.这里以电脑版钉钉为例,首先打开钉钉软件,创建一个新的聊天群. 2.打开钉钉群管理菜单,添加一个自定义机器人. 3.给群机器人设定一个名字 ...

  10. 钉钉机器人自动发消息

    首先最重要的一步,打开钉钉 打开一个群 => 打开群设置 => 打开智能群助手 => 添加机器人 => 添加机器人. 选择添加机器人-点击打开自定义机器人 => 定义好机 ...

最新文章

  1. 手把手教你实现SVM算法(二)
  2. android gradle自定义钉钉群提醒
  3. Oracle查看死锁 .
  4. gitlab hook触发jenkins自动构建
  5. 统计twitter帖子_在Kubernetes上部署InfluxDB和Grafana以收集Twitter统计信息
  6. [HNOI2012]三角形覆盖问题
  7. 【BZOJ5249】【九省联考2018】—IIIDX(线段树)
  8. java 银行卡号格式化_JS银行卡号格式化 - JavaScript常用效果 - Front-End - NalanXue's Blog...
  9. php mpdf 乱码,PHPMPDF中文乱码如何解决
  10. 思科模拟器之GNS3,GUI小凡的完美替代
  11. Matlab求矩阵均值
  12. Hackintool 3.4.7中文版 (黑苹果必备工具箱神器)
  13. 宝宝湿疹怎么办?宝宝湿疹怎么处理最好?
  14. WIN10 + Ubuntu18.04 双系统安装教程(新机)
  15. Python GUI教程:信号、槽、事件
  16. PC微信更改文件默认保存位置后聊天记录丢失
  17. js钢琴(含钢琴按键音效包)
  18. 2022中国消费者洞察
  19. OC学习笔记[注意事项]
  20. 【论文阅读】EDPLVO: Efficient Direct Point-Line Visual Odometry

热门文章

  1. 快速记下html css,如何快速记住及输入CSS样式属性单词?
  2. hadoop 如何连beeline_Hadoop家族新成员Hbase重磅来袭
  3. linux内核 header.s,arm架构的linux内核中,clrex指令的作用是什么
  4. 2021-08-3116. 最接近的三数之和 排序+双指针
  5. 185.部门工资前三高的员工
  6. I/O、Applet以及其他主题
  7. 《自然语言处理技术在中文全文检索中的应用》笔记
  8. openCV,C++接口,cv::Mat矩阵数据元素读取
  9. 复旦nlp实验室 nlp-beginner 任务二:基于深度学习的文本分类
  10. android手机和荣耀哪个版本好,【求测评】荣耀v40轻奢版与荣耀X10哪款更好?图文爆料分析...