dragon8837 2014-08-25 20:44
浏览 356
已采纳

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
  • 写回答

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
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 matlab yalmip kkt 双层优化问题
  • ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体
  • ¥88 实在没有想法,需要个思路
  • ¥15 MATLAB报错输入参数太多
  • ¥15 python中合并修改日期相同的CSV文件并按照修改日期的名字命名文件
  • ¥15 有赏,i卡绘世画不出
  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题