我已经制作了一个小型Web服务器,用于创建和更新日历事件。但是,对于如何使用日历api库服务,我不确定。现在,每次Web服务器接受请求时,我都会创建一个新请求,例如:
ctx := context.Background()
srv, err := calendar.NewService(ctx,option.WithTokenSource(config.TokenSource(ctx)))
我怀疑我应该重用此服务,但是我找不到有关此的任何文档。重用安全吗?不再使用时(例如垃圾回收)会自动丢弃吗?
答案 0 :(得分:0)
您可能想使用req.Context()
(其中req
是您的*http.Request
)而不是context.Background()
。在这种情况下,您每次都必须创建一个新的服务对象,并且将在适当时对其进行垃圾回收。
您要使用context.Background()
的唯一原因是,如果您异步发出日历API请求(例如,在单独的goroutine中),并且它们可能在HTTP请求完成之前未完成。在这种情况下,您可以根据需要使用一个共享服务对象。