dragon8837
2014-08-25 20:44
浏览 245

Gosk中Flask的@before_first_request相当于什么?

We are switching a flask app to golang for performance reasons. In flask, there is "before_first_request" which indicates a function to be run when the app gets started. This function gets run once and only once. I've been reading through the docs but can't find any equivalent in golang....does it exist? (I imagine it doesn't have to be part of the net/http package)

Our flask:

@before_first_request
def before(*args, **kwargs):
    ....
    return

图片转代码服务由CSDN问答提供 功能建议

出于性能原因,我们正在将Flask应用切换到golang。 在flask中,有一个“ before_first_request”,指示启动应用程序时要运行的功能。 此函数仅运行一次。 我一直在阅读文档,但在golang中找不到任何等效文件。...它存在吗? (我想它不一定是net / http包的一部分)

我们的烧瓶:

  @before_first_request 
def 之前(* args,** kwargs):
 .... 
返回
   
 
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • dongpu5874 2014-08-25 21:14
    已采纳

    one way to do it is to put your function logic inside the func init() { ... } method of your module.

    Otherwise you could use sync.Once

    http://play.golang.org/p/SEJxEEDnxt

    package main
    
    import (
        "fmt"
        "sync"
    )
    
    func main() {
        var once sync.Once
        onceBody := func() {
            fmt.Println("Only once")
        }
        done := make(chan bool)
        for i := 0; i < 10; i++ {
            go func() {
                once.Do(onceBody)
                done <- true
            }()
        }
        for i := 0; i < 10; i++ {
            <-done
        }
    }
    
    已采纳该答案
    打赏 评论

相关推荐 更多相似问题