in src/main/java/com/google/cloud/run/kafkascaler/SelfScheduler.java [125:147]
private void scheduleTask(Instant time, String scalerUrl) {
OidcToken oidcToken =
OidcToken.newBuilder()
.setServiceAccountEmail(config.invokerServiceAccountEmail())
.setAudience(scalerUrl)
.build();
HttpRequest httpRequest =
HttpRequest.newBuilder()
.setUrl(scalerUrl)
.setHttpMethod(HttpMethod.POST)
.setOidcToken(oidcToken)
.putHeaders(SELF_SCHEDULED_HEADER_KEY, "true")
.build();
Timestamp scheduleTime =
Timestamp.newBuilder().setSeconds(time.getEpochSecond()).setNanos(time.getNano()).build();
Task task = Task.newBuilder().setHttpRequest(httpRequest).setScheduleTime(scheduleTime).build();
try {
var unused = cloudTasks.createTask(config.fullyQualifiedCloudTaskQueueName(), task);
} catch (RuntimeException ex) {
logger.atSevere().withCause(ex).log("Failed to create task");
}
}