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