gpt4 book ai didi

go - 如何通过Google Cloud Tasks Go客户端库指定执行延迟?

转载 作者:行者123 更新时间:2023-12-01 22:10:46 25 4
gpt4 key购买 nike

我遵循this documentation创建任务,并阅读“您还可以微调任务的配置,例如安排将来应执行的时间”。
但是我仍然不清楚如何在我选择的延迟(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 := &timestamppb.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

关于go - 如何通过Google Cloud Tasks Go客户端库指定执行延迟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63942162/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com