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")
	}
}

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

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员若风+

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值