登录
首页 >  Golang >  Go问答

如何使用 Google Cloud Tasks Go 客户端库指定执行延迟?

来源:stackoverflow

时间:2024-04-10 09:45:36 371浏览 收藏

知识点掌握了,还需要不断练习才能熟练运用。下面golang学习网给大家带来一个Golang开发实战,手把手教大家学习《如何使用 Google Cloud Tasks Go 客户端库指定执行延迟?》,在实现功能的过程中也带大家重新温习相关知识点,温故而知新,回头看看说不定又有不一样的感悟!

问题内容

我按照本文档创建了一个任务,并阅读了“您还可以微调该任务的配置,例如安排将来执行该任务的时间”。

但是我仍然不清楚如何在我选择的延迟(time.duration)中有效地安排执行,例如“请在20分钟内触发这些对象的清理”。

相关的 loc 是 createtaskrequest 创建和 task 创建:

req := &taskspb.createtaskrequest{
                parent: queuepath,
                task: &taskspb.task{
                        messagetype: &taskspb.task_httprequest{
                                httprequest: &taskspb.httprequest{
                                        httpmethod: taskspb.httpmethod_post,
                                        url:        url,
                                },
                        },
                },
        }
createdTask, err := client.CreateTask(ctx, req)

我应该考虑使用 cloud scheduler 来实现此目的吗?


解决方案


您不需要为此使用 cloud scheduler。

您要查找的是字段 tasks.Task.scheduletime,其类型为 *timestamppb.Timestamp

time.duration 转换为 *timestamppb.timestamp 未来的日期非常简单(此处,忽略任何亚秒精度):

var d time.Duration = 20 * time.Minute
            
        ts := ×tamppb.Timestamp{
            Seconds: time.Now().Add(d).Unix(),
        },

        req := &taskspb.CreateTaskRequest{
                Parent: queuePath,
                Task: &taskspb.Task{
                        MessageType: &taskspb.Task_HttpRequest{
                                HttpRequest: &taskspb.HttpRequest{
                                        HttpMethod: taskspb.HttpMethod_POST,
                                        Url:        url,
                                },
                        },
                        ScheduleTime: ts,
                },
        }

以上内容适用于API v2

本篇关于《如何使用 Google Cloud Tasks Go 客户端库指定执行延迟?》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>