@Override
public Task create(String phase, String status, String clientRequestId) {
String taskKey = getClientRequestKey(clientRequestId);
String taskId = UUID.randomUUID().toString();
JedisTask task = new JedisTask(taskId, System.currentTimeMillis(), this, ClouddriverHostname.ID, false);
addToHistory(DefaultTaskStatus.create(phase, status, TaskState.STARTED), task);
set(taskId, task);
Long newTask = retry(() -> redisClientDelegate.withCommandsClient(client -> {
return client.setnx(taskKey, taskId);
}), "Registering task with index");
if (newTask != 0) {
return task;
}
addToHistory(DefaultTaskStatus.create(phase, "Duplicate of " + clientRequestId, TaskState.FAILED), task);
return getByClientRequestId(clientRequestId);
}