问题描述
我是 golang 的新手,我正在使用这个任务队列库 google.golang.org/appengine/taskqueue 来排队任务。我试过排队一个 api 调用,它看起来像这样(即 PUT api 调用)
taskqueue.Task{
Path: fmt.Sprintf(<endpoint>),Method: "PUT",Payload: payload
}
但我想知道如何将任何其他方法排入队列,这些方法除了休息调用之外还可以执行其他操作。说,我有下面的方法 printHello,我想将它排入队列并稍后在管道中执行。 有没有办法用任务队列来做到这一点?
func printHello(msg string){
log.Infof("Doing some tasks here");
}
我使用的是 golang 1.11.13
解决方法
通过任务队列,您可以使用 Cloud Task 将 HTTP 调用排入队列的 Google Cloud 产品。如果您想调用 printHello 函数,它必须是 HTTP 可调用的(因此在网络服务器中,可公开访问。可以使用 Google Coud 上的 IAM 进行保护)。
您不能将内部函数调用加入队列。