我应该为日历API重用服务,还是可以安全地按需创建新服务?

时间:2019-05-23 16:31:37

标签: go google-calendar-api

我已经制作了一个小型Web服务器,用于创建和更新日历事件。但是,对于如何使用日历api库服务,我不确定。现在,每次Web服务器接受请求时,我都会创建一个新请求,例如:

ctx := context.Background()
srv, err := calendar.NewService(ctx,option.WithTokenSource(config.TokenSource(ctx)))

我怀疑我应该重用此服务,但是我找不到有关此的任何文档。重用安全吗?不再使用时(例如垃圾回收)会自动丢弃吗?

1 个答案:

答案 0 :(得分:0)

您可能想使用req.Context()(其中req是您的*http.Request)而不是context.Background()。在这种情况下,您每次都必须创建一个新的服务对象,并且将在适当时对其进行垃圾回收。

您要使用context.Background()的唯一原因是,如果您异步发出日历API请求(例如,在单独的goroutine中),并且它们可能在HTTP请求完成之前未完成。在这种情况下,您可以根据需要使用一个共享服务对象。