golang实现cron定时任务

2023-11-13

golang实现cron定时任务


在编写爬虫的时候,需要定时抓取实时的新闻资讯、原来采用的linux的crontab,但是发现并不是很灵活、而且不能定制,所以就采用golang写了一套、发现网上的文章、有很多坑、所以整理了一套代码。

下载包


╰$ go get github.com/robfig/cron

代码篇:


package main

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

// 定时任务,可以设置具体的时间,三秒执行一次
func timeTask() {
	// 每天凌晨0点执行一次:0 0 0 * * ?
	// 每隔3秒执行一次:*/3 * * * * *

	spec := "*/3 * * * * *"
	c := cron.New(cron.WithSeconds())
	c.AddFunc(spec,business)
	go c.Start()
	defer c.Stop()
	select {}
}

// 业务逻辑
func business()  {
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

golang实现cron定时任务 的相关文章

  • GAE Go — 如何对不存在的实体键使用 GetMulti?

    我发现自己需要做一个GetMulti使用键数组进行操作 其中某些实体存在 但有些实体不存在 我当前的代码 如下 返回错误 datastore no such entity err datastore GetMulti c keys info
  • gentoo crontab:为什么这个简单的 crontab 不起作用?

    我使用 GENTOO 发行版 crontab e 35 12 root php5 home www cron php 当我手动运行时 php5 php5 home www cron php 这有效 它向我发送了一封电子邮件 然后我检查日期
  • 如何在 Go 中解组具有多个项目的简单 xml?

    我想从以下 xml 中获取人物 People 的一部分
  • GOPATH值设置

    我用go1 3 1 windows amd64 msi安装go 安装后GOROOT是默认设置 我发现 D Programs Go bin 在 PATH 中 然后我创建一个 GOPATH 环境变量 使用 go get 命令时 出现错误 软件包
  • 如何将UTC时间转换为unix时间戳

    我正在寻找将 UTC 时间字符串转换为 unix 时间戳的选项 我的字符串变量是02 28 2016 10 03 46 PM并且需要将其转换为 unix 时间戳 例如1456693426 知道该怎么做吗 首先 unix时间戳14566934
  • 打印到 stdout 会导致阻塞的 goroutine 运行吗?

    作为一个愚蠢的基本线程练习 我一直在尝试实现理发师睡觉的问题 http en wikipedia org wiki Sleeping barber problem在戈兰 对于通道来说 这应该很容易 但我遇到了一个 heisenbug 也就是
  • 为什么 Go 禁止取 (&) 映射成员的地址,却允许取 (&) 切片元素?

    Go 不允许获取地图成员的地址 if I do this p mm abc Syntax Error cannot take the address of mm abc 理由是 如果 Go 允许使用此地址 那么当地图后台存储增长或缩小时 该
  • Azure Functions 计时器触发器线程安全

    我想知道是否有人知道如果您在 Azure 函数上设置了 Cron 设置 如果其任务执行时间超过 5 分钟 则每 5 分钟运行一次 会发生什么情况 它备份吗 或者我应该实现一个锁定功能 以防止某些东西 例如在循环中 处理先前调用已经处理的数据
  • go中有memset的类似物吗?

    在 C 中 我可以使用某些值初始化数组memset https msdn microsoft com en us library aa246471 28v vs 60 29 aspx const int MAX 1000000 int is
  • 如何同时使用 LoadHTMLGlob 和 LoadHTMLFiles

    我想要来自不同子目录的分隔符逻辑模板templates文件夹 下面是我的templates文件夹 templates authentication login gohtml logout gohtml index gohtml profil
  • 使用正则表达式模式查找 -name 并使用 cp 替换文件名

    目前我正在使用该命令cron复制 data从源到目标路径 find source path name data exec cp target path 源码结构为 source path category1 001 data source
  • 在 Gorilla Mux 中嵌套子路由器

    我一直在使用gorilla mux https github com gorilla mux满足我的路由需求 但我注意到一个问题 当我嵌套多个子路由器时它不起作用 这是示例 func main r mux NewRouter StrictS
  • RSA OAEP、Golang 加密、Java 解密 -BadPaddingException:解密错误

    我正在尝试解密使用 RSA OAEP 在 Golang 中加密的字符串 但出现 BadPaddingException 解密错误 很难弄清楚我错过了什么 这是Golang加密方法 func encryptString rootPEM io
  • 如何修复“缺少表的 FROM 子句条目”错误

    我正在尝试根据游戏 ID 获取平台名称 我有如下三个表 我正在尝试加入它们以获得所需的结果 Games Id 1 2 3 4 Game Platforms Id game id platform id 1 1 1 2 1 2 3 3 3
  • 在两次之间每分钟执行一次 Cronjob

    我需要在 crontab 中每分钟运行一个 bash 脚本8 45am and 9 50am每天的 Code 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 8 home pull sh gt ho
  • 如何读取大型平面文件

    我有一个平面文件 其中包含 339276 行文本 大小为 62 1 MB 我试图读入所有行 根据我所拥有的某些条件解析它们 然后将它们插入数据库 我最初尝试使用 bufio Scan 循环和 bufio Text 来获取该行 但缓冲区空间不
  • golang无法启动调试,显示未找到框架CoreFoundation

    我使用的是 Macbook pro m1 在数据迁移或更新到 monterey 后 不确定是什么原因导致的 golang 似乎无法调试或 go list 编译 我尝试重新安装 更新 golang 结果是一样的 Go版本 1 17 3 dar
  • 实现具有更广泛方法签名的接口

    在Go中 是否有一种方法可以使用方法来实现接口 其中实现中相应方法的返回类型 比 预期返回类型 更宽 这很难解释 所以这里有一个例子 在 Go Playground 中运行以下示例代码时出现此错误 prog go 36 14 cannot
  • 什么时候返回结构体指针是个好主意?

    我正在学习 Go 我对何时使用指针有点困惑 具体来说 当返回一个struct从函数中 什么时候适合返回结构体实例本身 什么时候适合返回指向结构体的指针 示例代码 type Car struct make string model strin
  • 使用 Webmin 设置 cron 作业

    我正在尝试使用 Webmin 设置一个 Cron 作业每 5 分钟运行一次 它需要定位 php 文件并运行该文件中的 php 脚本 当我在 命令 字段中输入文件路径时 它不起作用 我只是想知道我做错了什么 以及我需要 Cron 作业运行的文

随机推荐

  • bluez调试笔记

    蓝牙系列 bluez调试笔记 weixin 41069709的博客 CSDN博客 bluezbluez移植https blog csdn net weixin 41069709 article details 125168114 spm 1
  • 指针与const限定符

    const限定符和指针结合起来常见的情况有以下几种 const int a int const a 这两种写法是一样的 a是一个指向const int的指针 a所指向的内存单元不可改写 所以 a 是不允许的 但a可以改写 所以a 是允许的
  • 低电压电池充不进电问题分析

    作者 AirCity 2020 3 1 Aircity007 sina com 本文所有权归作者Aircity所有 1 问题现象 某MSM8998手机项目 老化测试一端时间后 有很小比例的机器关机黑屏 充电1h没有反应 测量电池电压 2 6
  • Java实验二 货物进销管理系统【简单易懂】

    写在前面 这个题目主要通过仔细阅读题目的需求 再通过对文件流以及Vector ArrayList等容器的控制来完成整个代码体系的构建 因为当时正在学习 对代码的构建逻辑不够规范 思想不够到位的地方也难以避免 在这里抱歉抱歉 不过这一版的构建
  • 在K2P路由器,非官方openwrt固件,安装软件遇到的坑!

    手上有一台斐讯K2P A2版本的路由器 一直空闲在宿舍 最近发现这个路由器被破解了 可以刷上不死breed 还有很多大神做的固件 因此我想用它刷上openwrt系统后 安装某软件 从而直接在路由器上完成学校的宽带验证登陆 接下来我就介绍我在
  • 04 Cesium—Cesium ion介绍

    文章中所有操作均是在 Cesium 1 91 版本下进行的 其它版本差异请自行适配 Cesium ion Cesium ion 是一个提供瓦片图和3D地理空间数据的平台 Cesium ion 支持把数据添加到用户自己的 CesiumJS 应
  • 8421BCD码 5421BCD码 余三码 格雷码 余三循环码之间的关系,转换以及简易方法

    8421BCD码 5421BCD码 余三码 格雷码 余三循环码之间的关系 转换以及简易方法 1 有权码和无权码的包括 2 各种码值的介绍 8421码的简介 8421码又称为BCD码 是十进代码中最常用的一种 在这种编码方式中 每一位二值代码
  • java设计模式之单例模式

    目录 一 单例模式 二 饿汉模式和懒汉模式 1 饿汉模式 线程安全 2 懒汉模式
  • KVM无法进入virt-manager,提示Unable to init server: Could not connect: Connection refused

    1 KVM virt manager不能以root用户进入 需切换成普通用户或者sudo用户 2 需要配置ssh 密钥 3 需要安装Xming或者Xmanager等KVM可用等图形界面软件 无法连接kvm 设置用户到组 一定要当前用户不要r
  • 应用安全系列之九:HTTP参数污染

    本系列文章主旨在于介绍一些漏洞类型产生的基本原理 探索最基础的解决问题的措施 不排除有些语言或者系统提供的安全的API可以更好地更直接地解决问题 也不排除可以严格地输入验证来解决 URL参数注入 也称为HPP HTTP Parameter
  • java自旋锁的实现及其分析

    自旋锁是指一个线程尝试获取某个锁时 如果该锁已经被其他线程占用了 就一直循环检测锁释放被释放 而不是像互斥锁一样让线程进入挂起或者睡眠状态 自旋锁的的缺点就是会一直死循环一直到获取锁为止 这样会一直消耗cpu内存 但是与互斥锁把线程阻塞 然
  • vue3封装请求功能

    1 一般3开发后缀为ts的是在安装脚手架选择了ts语法开发 2 一般3开发后缀还为js的是没有选择ts当然也支持后缀vue文件使用setup js后缀的支持2的封装如下链接 vue2封装请求 如下所示为ts后缀的说明 request js
  • vue使用element发送手机验证码倒计时

    发送验证码倒计时 html
  • Linux常见面试题

    题目说明 参考多处Linux总结 整理了一下 原文链接 https blog csdn net weixin 41755830 article details 80519390 https www cnblogs com zjfjava p
  • Unity3D命令行Build

    Unity3D命令行Build 本来是没想用这个命令行Build方式 可惜电脑不知道怎么的就没法可视化的Build的了 一Build就蓝屏 后面发现这个命令行Build还是一个很实用的东西 比如你可以在服务器上搞个脚本让它每天在深更半夜时帮
  • 【解决 SyntaxError: Cannot use import statement outside a module 报错问题】

    1 项目场景 在学习express框架时 使用 formidable 包进行解析表单数据 文件上传 的Node js模块时 用 import 方式进行导入 import formidable from formidable 随后 使用 np
  • java反序列化时区,Jackson使用Java 8将Elasticsearch反序列化为LocalDateTime

    我们在日期字段中填充了longinlasticsearch索引 字段映射为 Field type FieldType Date JsonFormat shape JsonFormat Shape NUMBER INT private Loc
  • STM32速成笔记—串口IAP

    本文涉及到串口通信和Flash知识 对于这部分知识不熟悉的小伙伴可以到博主STM32速成笔记专栏查看 文章目录 一 串口IAP简介 1 1 什么是IAP 1 2 STM32下载程序 二 串口IAP有什么作用 三 启动流程 3 1 正常启动流
  • VirtualBox下设置共享文件夹并自动挂载

    想在主机和VirtualBox的Ubuntu建个共享文件夹 之前一直没搞定 今晚却特别的顺利 以下是设置的步骤 1 安装VirtualBox的VBoxGuestAddition iso 在 设备 gt 安装增强功能 安装结束记得重启 以前在
  • golang实现cron定时任务

    golang实现cron定时任务 在编写爬虫的时候 需要定时抓取实时的新闻资讯 原来采用的linux的crontab 但是发现并不是很灵活 而且不能定制 所以就采用golang写了一套 发现网上的文章 有很多坑 所以整理了一套代码 下载包