小编GKV*_*GKV的帖子

Golang中打开文件错误过多

我只是在读取/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)

请指导我。

go

7
推荐指数
3
解决办法
1万
查看次数

高朗的CRON工作

我在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源代码,但无法找到方法

谢谢你们

go

2
推荐指数
1
解决办法
6953
查看次数

cron golang每24小时运行一次?

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小时)以检查下一个唤起它没有发生.

cron go

1
推荐指数
1
解决办法
843
查看次数

标签 统计

go ×3

cron ×1