如何通过任务名称获取Google Cloud Task的计划时间?



是否有任何方法可以获得云任务计划使用其任务名称运行的时间?

我正在创建一个函数中的任务使用:

const task = {
httpRequest: {
httpMethod: 'POST',
url,
body: Buffer.from(JSON.stringify(payload)).toString('base64'),
headers: {
'Content-Type': 'application/json',
},
},
scheduleTime: {
seconds: 86400 
}
}
const [response] = await tasksClient.createTask({ parent: queuePath, task })
return response.name; 

它给了我一个任务名,看起来像:

projects/.../queues/foo/tasks/987555410648792221

如何使用上述任务名称获得此任务将在(epoch time)运行的时间?

response是具有scheduleTime属性的ITask类型。试一试:

console.log(`Task will trigger at ${response.scheduleTime?.seconds}`)

但是,这不是必需的,因为您应该按照以下方式传递任务触发时间:

const task = {
scheduleTime: {
seconds: Date.now() + 86400 // Time at which task should trigger
}
}

只要通过86400就会立即运行任务。


如果您知道任务名称,那么您可以使用getTask()获取任务信息并读取调度时间:

const [task] = await tasks.getTask({
name: response.name, // <-- task name
});
console.log(`Task schedule time: ${task.scheduleTime?.seconds}`);

最新更新