NodeJS 如何通过任务名称获取Google云任务的预定时间?

krcsximq  于 2022-12-18  发布在  Node.js
关注(0)|答案(1)|浏览(86)

是否有任何方法可以使用任务名称获取计划运行云任务的时间?
我正在函数中创建一个任务,使用:

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

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

wfveoks0

wfveoks01#

response的类型为ITask,具有scheduleTime属性。请尝试:

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}`);

相关问题