我只是在读取/proc/diskstats
文件。我的代码是:
func ReadFromFile(filepath string)(string){
defer func() {
if err1 := recover(); err1 != nil {
fmt.Println("!!!!!!!!!!!!!!!!Panic Occured and Recovered in readFromFile(), Error Info: ", err1)
}
}()
strData := ""
data, err := ioutil.ReadFile(filepath)
if err != nil{
fmt.Println("File read error: ", err)
return ""
}
strData = string(data)
return strData
}
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:
File read error: open /proc/diskstats: too many open files
Run Code Online (Sandbox Code Playgroud)
不仅对于此文件,对于其他一些文件,我也遇到相同的错误。
我还运行了以下命令:
root@golang:~# lsof|wc -l
785
Run Code Online (Sandbox Code Playgroud)
请指导我。
我在CRON PKG中使用 https://github.com/jasonlvhit/gocron/blob/master/gocron.go
import (
"fmt"
"time"
"github.com/claudiu/gocron"
)
func task() {
fmt.Println("I am runnning task.", time.Now())
}
func vijay() {
fmt.Println("I am runnning vijay.", time.Now())
}
func main() {
go test()
gocron.Start()
s := gocron.NewScheduler()
gocron.Every(5).Seconds().Do(task)
gocron.Every(10).Seconds().Do(vijay)
<-s.Start()
}
func test() {
time.Sleep(20 * time.Second)
gocron.Clear()
fmt.Println("All task removed")
}
Run Code Online (Sandbox Code Playgroud)
我的问题是删除所有工作后,我的程序仍在执行
我想在删除所有工作后中断执行
请帮帮我,我无法找到方法,我也尝试更改了PKG源代码,但无法找到方法
谢谢你们
cron
golang每24小时运行一次,但是当我尝试更改系统时间时,它不会调用.
package main;
import(
"fmt"
"strconv"
"strings"
"gopkg.in/robfig/cron.v2"
"time"
)
func Envoke_ASSET_INFO() {
fmt.Println("Invoking Envoke_ASSET_INFO ", time.Now())
}
func main(){
C:=cron.New()
min:=strconv.Itoa(int(17))
h:=strconv.Itoa(int(16))
sep:="0"+" "+min+" "+h+" "+"*"+" "+"*"+" "+"*"
fmt.Println("SPECIFATION PASSED TO FUNCTION :", sep)
C.AddFunc(sep, Envoke_ASSET_INFO )
C.Start()
select{}
}
Run Code Online (Sandbox Code Playgroud)
当我运行这个程序时,它唤起了我的功能.但是,当我改变我的系统时间(+24小时)以检查下一个唤起它没有发生.