go学习笔记(16)

goland 有个定时任务的库 cron,查看了一些资料也挺多人用,所以就跟着这个案例,写了一遍,先把它记录下来。顺便也练习一下goland的一些基础。文件写入的库ioutil,查看这个库实际上是建立在os基础上封装的。用起来也可以,和nodejs的api 也类似。但是goland 要处理异常错误。这一点会写多一点代码,但这个并不是问题。

package main

import (
	"bytes"
	"encoding/binary"
	"io/ioutil"
	"strconv"

	"log"

	"github.com/robfig/cron"
)

//定时任务
func main() {
	t := 0
	c := cron.New()
	spec := "*/10 * * * * ?"
	c.AddFunc(spec, func() {
		t++
		log.Println("执行次数:", t)
		writeFile(strconv.Itoa(t))
		readFile()
	})
	c.Start()
	select {}
}

//写入文件
func writeFile(str string) {

	err := ioutil.WriteFile("file.txt", []byte(str), 0666)
	if err != nil {
		log.Println(err.Error())
	}
}

//读取文件
func readFile() {

	b, err := ioutil.ReadFile("aa.txt")
	if err != nil {
		log.Println(err.Error())
	}

	//2进制 和字符串转换
	var r = string(b)
	log.Println(r)
}

//int 转byte
func intToByte(num int64) []byte {
	var buffer bytes.Buffer
	err := binary.Write(&buffer, binary.BigEndian, num)
	if err != nil {
		log.Println(err.Error())
	}
	return buffer.Bytes()
}

发布了1410 篇原创文章 · 获赞 64 · 访问量 236万+

猜你喜欢

转载自blog.csdn.net/hero82748274/article/details/96631203