我应该为每个使用Fiber的API请求运行一个goroutine吗?

b5lpy0ml  于 2023-01-18  发布在  Go
关注(0)|答案(1)|浏览(128)

我使用Fiber来构建一个Rest API,我想知道是否要在goroutine中运行每个处理函数,例如,假设我有以下路径:

router.Get("/get", getMockData)
router.Post("/create", createMockData)
router.Put("/update", updateMockData)
router.Delete("/delete", deleteMockData)

我是否应将其改为:

// I know this isn't syntactically correct but this is just an example. 
router.Get("/get", go getMockData)
router.Post("/create", go createMockData)
router.Put("/update", go updateMockData)
router.Delete("/delete", go deleteMockData)

我应该这样做吗?我已经看了this问题,它说没有,但它的目标是net/http包,所以它并不真正适用。
谢谢大家!

vcudknz3

vcudknz31#

。您不能将函数作为goroutine传递,因为这在概念上是错误的。您正在传递对router.Get("/get", getMockData)中函数的引用,其中getMockData是函数的引用。您没有调用该函数,因为这不是您的责任。这是Fiber或您使用的其他框架的责任。当客户端访问/get这样的API时,Fiber会调用该函数,而且很可能是在一个单独的goroutine中调用,以提高效率。

相关问题