首页 > 解决方案 > Golang用任务队列排队一个方法

问题描述

我是 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

标签: gogoogle-cloud-platformtask-queue

解决方案


通过任务队列,您可以使用将 HTTP 调用排队的Cloud Task Google Cloud 产品。如果您想调用您的 printHello 函数,它必须是 HTTP 可调用的(因此在网络服务器中,可以公开访问。可以使用 Google Coud 上的 IAM 进行保护)。

您不能将内部函数调用排入队列。


推荐阅读