# #google-tasks-api #google-cloud-tasks
Вопрос:
У меня есть требование, согласно которому мне нужно запланировать (т. Е. Выполнить) задачу через 540 секунд (т. е. 9 минут) после создания задачи.
Как я могу запланировать задачу после выполнения определенных шагов?
Я использую Java.
Вот мой код,
public static void createTask(String projectId, String queueName, String location, String payload, String url,
int timeDelayInSeconds) throws IOException {
// [START cloud_tasks_appengine_create_task]
// Instantiates a client.
try (CloudTasksClient client = CloudTasksClient.create()) {
// Construct the fully qualified queue name.
String queuePath = QueueName.of(projectId, location, queueName).toString();
OidcToken.Builder oidcTokenBuilder =
OidcToken.newBuilder().setServiceAccountEmail(GlobalConfig.TasksAndSchedulingUser);
// Construct the task body using HTTP Request
Task.Builder taskBuilder = Task.newBuilder().setHttpRequest(
HttpRequest.newBuilder().setBody(ByteString.copyFrom(payload, Charset.defaultCharset())).setUrl(url)
.setHttpMethod(HttpMethod.POST)
.setOidcToken(oidcTokenBuilder)
.build())
.setScheduleTime(Timestamp.newBuilder()
.setSeconds(Instant.now(Clock.systemUTC()).plusSeconds(timeDelayInSeconds).getEpochSecond()));
// Send create task request.
Task task = client.createTask(queuePath, taskBuilder.build());
logger.info("Task created: " task.getName());
}
// [END cloud_tasks_appengine_create_task]
}
Комментарии:
1. Здесь проблема в том, что с приведенным выше кодом он не ждет 9 минут. Он выполняет задачу немедленно. Итак, как мне это предотвратить?