3分钟用Go搭建一个喝水提醒通知

简介: 3分钟用Go搭建一个喝水提醒通知

-- 有的时候工作起来经常忘记喝水。我们如何设定一个自己的喝水消息提醒呢?

-- 最近一直在搞自己的go框架。里面封装了定时任务调度。以及钉钉推送提醒。那么我们可以用这个东东来搞点事情了

-- 我们定时任务每半个小时执行一次。为了保证半夜不会收到喝水提醒。所以我们需要对推送的时间做出限制。只有在指定的时间段才推送消息。

下面看下具体的逻辑代码

定时任务主代码

package main

import (
    "fmt"
    "gin/cmd/heshui/job"
    "gin/common/env"
    "gin/common/function"
    "github.com/reugn/go-quartz/quartz"
)

func main() {
    env.Active().Value()
    sampleJobs2()
}

func sampleJobs2() {
    sched := quartz.NewStdScheduler()
    sched.Start()
    cronTrigger, err := quartz.NewCronTrigger("0 0/30 * * * *")
    //cronTrigger := quartz.NewRunOnceTrigger(time.Second * 1)

    //cronTrigger, err := quartz.NewCronTrigger("0 0/1 * * * *")
    if err != nil {
        fmt.Println(err)
        return
    }

    exitChan := make(chan bool, 1)

    cronJob := job.Xueqiu{"Cron job", exitChan}

    //for {

    start_time := function.ExeStart()
    sched.ScheduleJob(&cronJob, cronTrigger)

    for i := 0; i < 1; i++ {
        <-exitChan
    }

    function.PrintUseTime(start_time)

    sched.DeleteJob(cronJob.Key())

    //}

    sched.Stop()
}

具体逻辑代码

// Execute is called by a Scheduler when the Trigger associated with this job fires.
func (pj *Xueqiu) Execute() {
    currentHour := time.Now().Hour()

    allow := []int{
        8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
    }

    title := "主人,该喝水啦~~~"
    if php2go.InArray(currentHour, allow) == true {
        function.SendToDingDingAt(config.Config.DINGding.Heshuipush, title, title, "18163912092")
    }
}

这样就实现了每隔半个小时 就会有一个机器人来告诉你应该喝水了。。。。

在这里插入图片描述

相关文章
|
SQL 运维 负载均衡
双活中心高效同步机制
双活中心高效同步机制
653 1
|
应用服务中间件 nginx
Centos7.3 卸载 Nginx(彻底卸载) 并重新安装 Nginx(RPM源yum安装)
Centos7.3 卸载 Nginx(彻底卸载) 并重新安装 Nginx(RPM源yum安装)
1327 0
Centos7.3 卸载 Nginx(彻底卸载) 并重新安装 Nginx(RPM源yum安装)
启用 ESLint 后 解决格式化文档自动添加分号和双引号问题
启用 ESLint 后 解决格式化文档自动添加分号和双引号问题
1438 0
启用 ESLint 后 解决格式化文档自动添加分号和双引号问题
|
JavaScript 前端开发 编译器
ES6 代码转成 ES5 代码的实现思路是什么
ES6 代码转成 ES5 代码的实现思路主要是通过编译器将新的语法结构和特性转换为旧版本的 JavaScript 代码,以确保在不支持 ES6 的环境中可以正常运行。常用的工具如 Babel 可以自动完成这一过程。
|
JavaScript
基于Vue2.X对WangEditor 5富文本编辑器进行封装与使用,支持单个或多个图片点击、粘贴、拖拽上传,Vue3.X项目也可直接使用
这篇文章介绍了如何在Vue 2.X项目中封装和使用WangEditor 5富文本编辑器,支持图片的点击、粘贴和拖拽上传,同时提到封装的组件也适用于Vue 3.X项目,并提供了详细的使用示例和后端配置。
1719 1
基于Vue2.X对WangEditor 5富文本编辑器进行封装与使用,支持单个或多个图片点击、粘贴、拖拽上传,Vue3.X项目也可直接使用
|
存储 开发工具 数据库
git的标签管理
git的标签管理
|
消息中间件 存储 Kafka
微服务实践之分布式定时任务
微服务实践之分布式定时任务
|
存储 消息中间件 移动开发
还在用crontab? 分布式定时任务了解一下
还在用crontab? 分布式定时任务了解一下
|
人工智能 自然语言处理 机器人
销售利器大集结:13种智能销售工具全面解析
该文探讨了人工智能在销售领域的应用,测试了13款领先工具,如Zoho CRM、Email Subject Line Generator和ChatGPT Plus等,这些工具通过数据分析、自动化任务和智能交互提升销售效率。然而,使用AI也带来人机交互和数据安全的挑战。文章强调,结合人工智能和人类销售人员的优势是关键,同时应谨慎处理相关问题。
783 4
|
存储 JavaScript API
Vue状态管理深度剖析:Vuex vs Pinia —— 从原理到实践的全面对比
Vue状态管理深度剖析:Vuex vs Pinia —— 从原理到实践的全面对比
1127 2