草庐IT

task_scheduler_init

全部标签

go - 如何将变量从 init 函数(在 main.go 中)导入到不同的文件中?

这是我的目录结构:my_projectmy_apimain.goutil_dirutil.go我在main.go的init函数中传递了一些环境变量,因为我希望在我的服务启动时获取它们。下面是main.go代码片段:import("net/url""net")funcinit(){...data:=url.Values{}data.Add("client_id",os.Getenv("CLIENTID"))data.Add("client_secret",os.Getenv("CLIENTSECRET"))}我想在util.go中做这样的事情:import("os""github.com

go - golang 中的 init 函数可以返回值吗?

任何人都可以建议任何其他方法来处理在我的server.go程序中初始化函数之外的数据库吗?我在我的程序中使用MySQL,我需要初始化和连接并将处理程序发送到Controller。 最佳答案 你不能用init()函数返回一个值,但你可以用它初始化全局(包)变量,这样你就可以尝试类似的事情:packagemysqlvarConnConnectionfuncinit(){Conn=...}现在Controller可以访问您的连接,导入您的包并访问您已经初始化的连接。packagecontrollersimport("mysql")func

google-app-engine - 从 AppEngine 上的 Go 中的 init() 函数获取 URL

背景:我在GAE上运行Go并为我的路由器使用Mux。为了获取URL,GAE要求我使用其内置的urlFetch功能。我想让这个URL提取在我的模块init()期间发生,但据我所知,我只能在通过处理程序调用时使用urlFetch。funcinit(){r:=mux.NewRouter()r.HandleFunc("/",homeHandler)r.HandleFunc("/about",anotherHandler)http.Handle("/",r)}GAE建议使用以下代码来制作urlFetch:c:=appengine.NewContext(r)client:=urlfetch.Cli

戈朗 : how to handle blocking tasks optimally?

众所周知,goroutine是同步但非阻塞的处理单元。golang调度程序处理非阻塞任务,例如来自字符设备的套接字、定时器、信号或其他事件非常好。但是block设备io或CPU敏感任务怎么样?它们在完成之前不能被打断,也不能被多路复用。运行goroutine的OS线程将卡住,直到goroutine返回或让步。在这种情况下,调度粒度会变差。当然,您可以在代码中将任务拆分为更小的子任务,例如,不要一次复制1GB的文件,而是先复制10MB,让出,再复制另外10MB等,这样同一操作系统线程中的其他goroutines有机会运行。CPU密集型任务的另一个示例:逐个压缩文件并最终合并它们。但这破坏

go - init() 未在新包中运行

我已经有一段时间没有使用Go了,我刚刚开始重新处理一个旧项目。我在许多包中都有init()函数,它们工作正常。然而,我刚刚创建了一个新包并添加了一个init()函数,但它不会像其他包一样在初始化期间运行。如果我将init()函数放在以前存在的包中,它运行良好...我相信这是一个简单的问题,但我终究无法解决。我可能做错了什么? 最佳答案 如果您的主程序根本不导入您的新包...它的init()函数将不会被调用。如果只想执行导入包的init()函数,不想使用包的其他内容,应该修改import"foo"导入_"foo"。参见initfunc

go - 在包的 init 函数中初始化变量是否确保 golang 应用程序中的单个实例?

我正在编写布隆过滤器包。在我的包中,我想创建一个X的实例(非导出的),我希望它只作为一个实例存在;无论我的包被导入应用程序多少次。我正在做的一个简单片段是:packagesuperduperbloomfiltervarxXfuncinit(){x=X.New(....)}这是正确的吗? 最佳答案 whichIwanttoexistonlyasasingleinstance;nomatterhowmanytimesmypackageisimportedintoanappThespec说导入的包只初始化一次:Ifapackagehasi

go - 为什么在 init() 中检查 nil

我正在阅读thisarticle在其示例中提供此代码:vartemplatesmap[string]*template.Template//Loadtemplatesonprograminitialisationfuncinit(){iftemplates==nil{templates=make(map[string]*template.Template)}为什么要在init()中检查iftemplates==nil?在执行的这个点上它不会总是一样吗? 最佳答案 没有理由在文章提供的代码中检查nil。还有其他方法来构造代码。选项1:

performance - 在 init 或处理函数中读取模板?

我正在为网站编写一个基本服务器。现在我面临一个(对我来说)困难的性能问题。是不是在init()函数中读取模板文件比较好?//Initializeallpagesofwebsitefuncinit(){indexPageData,err:=ioutil.ReadFile("./tpl/index.tpl")check(err)}还是在http.HandlerFunc中?funcindex(whttp.ResponseWriter,req*http.Request){indexPageData,err:=ioutil.ReadFile("./tpl/index.tpl")check(err

go - 如何在 GoSublime 中禁用 func init() 自动完成功能?

每次我输入关键字int时,这是很常见的......我得到一个关于自动完成的建议funcinit(){}所以每次我写int并按回车时,我都会得到这个函数,然后我必须手动删除它,然后再次重写int并单击左键和向右箭头几次,直到自动完成消失。当你必须在1小时内执行这么多次时,这是一种可怕的体验。我该如何解决? 最佳答案 在您的GoSublime包设置中(如果您还没有将默认值复制给用户),有一行:{"text":"init","title":"funcinit()","value":"funcinit(){\n\t$1\n}"},删除它,我

json - VS Code tasks.json——任务单独工作,但不组合

这让我抓狂(抓狂!)。构建/运行文件正确,fmt命令正确。但是,如果我尝试合并到一个任务文件中,它就会停止工作。这两个独立运行良好,并且按照我想要的方式运行:任务.json{"version":"0.1.0","isShellCommand":true,"showOutput":"always","command":"go","taskName":"build","args":["build","-o","${workspaceRoot}.exe","&&","${workspaceRoot}.exe"],"isBuildCommand":true}任务.json{"version":