golang 实现每隔几分钟执行一个函数

1、使用定时器

2、使用这种方式

go function()
func function() {
 // TODO 具体逻辑

 // 每5分钟执行一次
 time.AfterFunc(5*time.Minute, function)
}

补充:Golang:每天零点定时执行操作

我就废话不多说了,大家还是直接看代码吧~

import (
  "time"
  "fmt"
)
//定时结算Boottime表数据
func BoottimeTimingSettlement() {
  for {
    now := time.Now()
    // 计算下一个零点
    next := now.Add(time.Hour * 24)
    next = time.Date(next.Year(), next.Month(), next.Day(), 0, 0, 0, 0, next.Location())
    t := time.NewTimer(next.Sub(now))
    <-t.C
    Printf("定时结算Boottime表数据,结算完成: %v\n",time.Now())
    //以下为定时执行的操作
    BoottimeSettlement()
  }
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。

(0)

相关推荐

  • Golang中的自定义函数详解

    不管是面向过程的编程,还是面向对象的编程,都离不开函数的概念,分别是,参数,函数名,返回值.接下来我们看看Go语言在这三个方面是做怎么操作的吧. 参数 谈到参数,我们在写函数或者是类中的方法的时候都需要考虑我们应该传递怎样的参数,或者是是否需要参数. 参数首先分为无参函数有参.无参也就是没有参数,也就不用写了. 有参 func functionTest() {  # 小括号内就是用来放参数的     # 函数体内 } Go语言是强数据类型的语言,参数是要指定类型的不然就报错.func 是函数的声

  • Golang学习笔记之延迟函数(defer)的使用小结

    golang的defer优雅又简洁, 是golang的亮点之一.defer在声明时不会立即执行,而是在函数return后,再按照先进后出的原则依次执行每个defer,一般用于释放资源.清理数据.记录日志.异常处理等. 关键字defer于注册延迟调用.这些调用直到 ret 前才被执行,通常用于释放资源或错误处理. 一.当defer被声明时,其参数就会被实时解析 func a() { i := 0 defer fmt.Println(i) //输出0,因为i此时就是0 i++ defer fmt.P

  • 通过汇编看golang函数的多返回值问题

    golang这门语言,有个比较好的特性,就是支持函数的多返回值.想C,C++,Java等这些语言,是不支持函数多返回的.但是C,C++可以使用传递指针,实现函数多返回.但是,你有没有想过,golang是怎样实现函数多返回值的呢? 我们知道,C,C++是通过寄存器实现函数返回值的,也就是先把返回值写入到一个寄存器中,然后再从寄存器中,读到函数的返回值.golang也是这样实现的吗? 伟大的思想家孔子曾说过,在源码面前一切都如同裸奔.后来,鲁迅先生,总结了孔子的思想,说出了,在汇编面前,一切语法都是

  • Golang 函数执行时间统计装饰器的一个实现详解

    背景 最近在搭一个新项目的架子,在生产环境中,为了能实时的监控程序的运行状态,少不了逻辑执行时间长度的统计.时间统计这个功能实现的期望有下面几点: 实现细节要剥离:时间统计实现的细节不期望在显式的写在主逻辑中.因为主逻辑中的其他逻辑和时间统计的抽象层次不在同一个层级 用于时间统计的代码可复用 统计出来的时间结果是可被处理的. 对并发编程友好 实现思路 统计细节的剥离 最朴素的时间统计的实现,可能是下面这个样子: func f() { startTime := time.Now() logicSt

  • Golang记录、计算函数执行耗时、运行时间的一个简单方法

    先写一个公共函数, 比如在 common 包下有这么一个方法: // 写超时警告日志 通用方法 func TimeoutWarning(tag, detailed string, start time.Time, timeLimit float64) { dis := time.Now().Sub(start).Seconds() if dis > timeLimit { log.Warning(log.CENTER_COMMON_WARNING, tag, " detailed:&quo

  • golang 实现每隔几分钟执行一个函数

    1.使用定时器 2.使用这种方式 go function() func function() { // TODO 具体逻辑 // 每5分钟执行一次 time.AfterFunc(5*time.Minute, function) } 补充:Golang:每天零点定时执行操作 我就废话不多说了,大家还是直接看代码吧~ import ( "time" "fmt" ) //定时结算Boottime表数据 func BoottimeTimingSettlement() { f

  • Node.js node-schedule定时任务隔多少分钟执行一次的方法

    在 Node.js 中,我使用 node-schedule 来执行定时任务.Cron-style 的时间格式对于初学者不太直观,所以一般使用这种方式:比如官方示例中的每个小时的 42 分执行任务 复制代码 代码如下: var schedule = require('node-schedule'); var rule = new schedule.RecurrenceRule();  rule.minute = 42; var j = schedule.scheduleJob(rule, func

  • Winform基于多线程实现每隔1分钟执行一段代码

    本文实例讲述了Winform基于多线程实现每隔1分钟执行一段代码的方法,分享给大家供大家参考.具体实现方法如下: 1.定义相关的类Timer.cs,代码如下: 复制代码 代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; namespace SMIS2013.DSS.Monitor {     public class

  • js代码延迟一定时间后执行一个函数的实例

    实例如下: setTimeout(funcName,500); function funcName() { xxxxxx; } 0.5秒后执行funcName(),只执行一次 setInterval(funcName,5000);   每隔5秒执行一次funcName() 以上这篇js代码延迟一定时间后执行一个函数的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • vue实现定时刷新数据,每隔5分钟执行一次

    目录 vue定时刷新数据,每隔5分钟执行一次 vue局部定时刷新 设置定时器 局部刷新 清除定时器 总结 vue定时刷新数据,每隔5分钟执行一次 data() { return { timer: null } }, mounted() { // 每隔5分钟定时刷新 this.timer = setInterval(() => { this.getFxItemlist(); }, 300000) }, beforeDestroy() { clearInterval(this.timer); },

  • crontab实现每隔多少天执行一次脚本的两种方法

    前言 我们大家在工作中,经常会碰到每隔多少天/小时/分钟执行一次脚本,或某个命令的情况.如果是每隔多少小时,多少分运行一次程序,在crontab中可能比较好实现一些,下面是一些示例及crontab的格式说明: 具体示例: # 下午6点到早上6点,每隔15分钟执行一次脚本 0,15,30,45 18-06 * * * /bin/bash $HOME/script.sh > /dev/null 2>&1 # 每两小时,重启一次服务 * */2 * * * /etc/init.d/apach

  • python 轮询执行某函数的2种方式

    目标:python中每隔特定时间执行某函数 方法1:使用python的Thread类的子类Timer,该子类可控制指定函数在特定时间后执行一次: 所以为了实现多次定时执行某函数,只需要在一个while循环中多次新建Timer即可. from threading import Timer import time def printHello(): print ("Hello") print("当前时间戳是", time.time()) def loop_func(fu

  • 对new functionName()定义一个函数的理解

    比如定义一个函数的两种调用方法: 复制代码 代码如下: function getInfo() { var info = { message: "message" }; return info; } 1.var info1 = getInfo(); 2.var info2 = new getInfo(); 1和2有什么区别吗?info1和info2得到的值是一样的吗? 第1种很简单,用的也很多,就是执行一个函数,并接受函数的返回值并赋给info1对象: 第2种情况一般就很少见了.首先,函

  • linux 上在指定时间段内每隔多少分钟自动执行任务计划crontab

    #/bin/sh datename=$(date +%Y%m%d-%H%M%S) echo $datename >> /tmp/logtest.txt */2 19,20 * * * /bin/sh /root/1.sh 在每天晚上2点到19和20点每2分钟执行一次 [root@dpm ~]# cat /tmp/logtest.txt 20191112-180001 20191112-180201 20191112-180401 20191112-180601 20191112-180801

  • MYSQL每隔10分钟进行分组统计的实现方法

    前言 本文的内容主要是介绍了MYSQL每隔10分钟进行分组统计的实现方法,在画用户登录.操作情况在一天内的分布图时会非常有用,之前我只知道用「存储过程」实现的方法(虽然执行速度快,但真的是太不灵活了),后来学会了用高级点的「group by」方法来灵活实现类似功能. 正文: -- time_str '2016-11-20 04:31:11' -- date_str 20161120 select concat(left(date_format(time_str, '%y-%m-%d %h:%i'

随机推荐