首页 > 其他分享 >Golang学习笔记-定时任务

Golang学习笔记-定时任务

时间:2023-12-01 09:11:37浏览次数:25  
标签:cron fmt 笔记 Golang func time 定时 main

指定具体时间执行

package main

import (
	"fmt"
	"time"
)

func main() {
	// 指定执行时间为 2023-11-29 00:00:00
	executionTime := time.Date(2023, time.November, 29, 0, 0, 0, 0, time.UTC)

	// 当前时间
	now := time.Now().UTC()

	// 计算距离执行时间的持续时间
	duration := executionTime.Sub(now)

	// 使用 time.AfterFunc 安排在指定时间执行的函数
	time.AfterFunc(duration, func() {
		fmt.Println("执行定时任务...")
		// 在这里添加你的任务逻辑
	})

	// 主程序可以继续执行其他工作
	// ...

	// 阻塞程序,直到按下 Ctrl+C 才退出
	select {}
}

定期执行

1. time模块

package main

import (
	"fmt"
	"time"
)

func main() {
	// 创建一个定时器,每隔一段时间触发一次
	ticker := time.NewTicker(5 * time.Second)

	// 启动一个 goroutine 来处理定时任务
	go func() {
		for {
			select {
			case <-ticker.C:
				// 这里写入你想要定期执行的任务
				fmt.Println("定时任务执行:", time.Now())
			}
		}
	}()

	// 等待程序结束,可以使用通道或者其他方式
	select {}
}

2.cron模块

go get github.com/robfig/cron

package main

import (
	"fmt"
	"github.com/robfig/cron"
)

func main() {
	// 创建一个新的 cron 实例
	c := cron.New()

	// 添加你的定时任务,这里是一个每分钟执行一次的例子
	c.AddFunc("* * * * *", func() {
		fmt.Println("执行定时任务...")
	})

	// 启动 cron
	c.Start()

	// 主程序可以继续执行其他工作
	// ...

	// 阻塞程序,直到按下 Ctrl+C 才退出
	select {}
}

标签:cron,fmt,笔记,Golang,func,time,定时,main
From: https://www.cnblogs.com/jruing/p/17868873.html

相关文章

  • 11月30日加 卓有成效的程序员读书笔记三
    今天上课完成了王老师的考试系统的数据流程图的绘画讲道理看着很麻人不过还是让我磕出来了 “古代哲人”一章里的提到一些东东,可能是我们大家都知道的一些道理或法则。但“知道法则”是一会事儿,“理解法则”又是另一会事儿。里面的“事物的本质性质和附属性质”就是哲学中......
  • 阅读笔记
    在读《软件方法》之前,我对UML的认识还停留在画图表达自己的逻辑与同学交流的阶段。当然《软件方法》也不是一本纯粹的UML书籍,潘加宇用工作流建模方式讲述了实践愿景、业务建模和系统用例在创建系统的使用。作者在这本书中犀利的表达了自己对软件和建模的理解,每个章节都有思维引导......
  • 20211128《信息安全系统设计与实现》第十四章学习笔记
    一、任务内容自学教材第14章,提交学习笔记(10分)1.知识点归纳以及自己最有收获的内容,选择至少2个知识点利用chatgpt等工具进行苏格拉底挑战,并提交过程截图,提示过程参考下面内容(4分)“我在学***X知识点,请你以苏格拉底的方式对我进行提问,一次一个问题”核心是要求GPT:“请你以苏格......
  • 江科大STM32(3):定时器(4)定时器的编码器接口
    1.编码器接口简介EncoderInterface编码器接口编码器接口可接收增量(正交)编码器的信号,根据编码器旋转产生的正交信号脉冲,自动控制CNT自增或自减,从而指示编码器的位置、旋转方向和旋转速度每个高级定时器和通用定时器都拥有1个编码器接口两个输入引脚借用了输入捕获的通道1和......
  • Springboot017学生读书笔记共享-计算机毕业设计源码+LW文档
    摘要本论文主要论述了如何使用JAVA语言开发一个读书笔记共享平台,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发。在引言中,作者将论述读书笔记共享平台的当前背景以及系统开发的目的,后续章节将严格按照软件开发流程,对系统进行各个阶......
  • 高速计数器使用笔记( AM521-0808TN )
         ......
  • 2023-2024-1 20211306 密码系统设计与实现课程学习笔记12
    20211306密码系统设计与实现课程学习笔记12任务详情自学教材第14章,提交学习笔记知识点归纳以及自己最有收获的内容,选择至少2个知识点利用chatgpt等工具进行苏格拉底挑战,并提交过程截图,提示过程参考下面内容“我在学***X知识点,请你以苏格拉底的方式对我进行提问,一次一个......
  • 江科大STM32(3):定时器(3)定时器的输入捕获
    1.TIM输入捕获1.1基本概念IC(InputCapture)输入捕获输入捕获模式下,当通道输入引脚出现指定电平跳变时,当前CNT的值将被锁存到CCR中,可用于测量PWM波形的频率、占空比、脉冲间隔、电平持续时间等参数每个高级定时器和通用定时器都拥有4个输入捕获通道可配置为PWMI模式,同时测量频......
  • SIMD笔记-ARM NEON
    参考资料https://blog.csdn.net/fuhanga123/article/details/120673795概述对于处理半精度浮点数(float16)的加法,我们可以使用ARMNEON指令集,因为IntelSIMD指令集(SSE和AVX)不直接支持float16运算。ARMNEON指令集中有专门用于float16运算的指令。以下是一个使用ARM......
  • 阅读笔记:《软件需求分析》阅读笔记三
    在继续深入研究《软件需求分析》这本书的过程中,我发现了一些关键的观点和概念,这些观点不仅对软件工程师和需求分析师有价值,对整个软件开发流程也具有重要意义。以下是我在本次阅读中的主要发现和理解:需求分析的重要性需求分析在软件开发过程中占据关键地位。它不仅仅是整个项......