Search in sources :

Example 1 with StickyExecutionAttributes

use of io.temporal.api.taskqueue.v1.StickyExecutionAttributes in project sdk-java by temporalio.

the class TestWorkflowMutableStateImpl method completeWorkflowTask.

@Override
public void completeWorkflowTask(int historySizeFromToken, RespondWorkflowTaskCompletedRequest request) {
    List<Command> commands = request.getCommandsList();
    completeWorkflowTaskUpdate(ctx -> {
        if (ctx.getInitialEventId() != historySizeFromToken + 1) {
            throw Status.NOT_FOUND.withDescription("Expired workflow task: expectedHistorySize=" + historySizeFromToken + "," + " actualHistorySize=" + ctx.getInitialEventId()).asRuntimeException();
        }
        long workflowTaskCompletedId = ctx.getNextEventId() - 1;
        // Fail the workflow task if there are new events and a command tries to complete the
        // workflow
        boolean newEvents = false;
        for (RequestContext ctx2 : workflowTaskStateMachine.getData().bufferedEvents) {
            if (!ctx2.getEvents().isEmpty()) {
                newEvents = true;
                break;
            }
        }
        if (newEvents && hasCompletionCommand(request.getCommandsList())) {
            RespondWorkflowTaskFailedRequest failedRequest = RespondWorkflowTaskFailedRequest.newBuilder().setCause(WorkflowTaskFailedCause.WORKFLOW_TASK_FAILED_CAUSE_UNHANDLED_COMMAND).setIdentity(request.getIdentity()).build();
            workflowTaskStateMachine.action(Action.FAIL, ctx, failedRequest, workflowTaskCompletedId);
            for (RequestContext deferredCtx : workflowTaskStateMachine.getData().bufferedEvents) {
                ctx.add(deferredCtx);
            }
            workflowTaskStateMachine.getData().bufferedEvents.clear();
            scheduleWorkflowTask(ctx);
            return;
        }
        try {
            workflowTaskStateMachine.action(StateMachines.Action.COMPLETE, ctx, request, 0);
            for (Command command : commands) {
                processCommand(ctx, command, request.getIdentity(), workflowTaskCompletedId);
            }
            for (RequestContext deferredCtx : workflowTaskStateMachine.getData().bufferedEvents) {
                ctx.add(deferredCtx);
            }
            WorkflowTaskData data = this.workflowTaskStateMachine.getData();
            boolean completed = workflow.getState() == StateMachines.State.COMPLETED || workflow.getState() == StateMachines.State.FAILED || workflow.getState() == StateMachines.State.CANCELED;
            if (!completed && ((ctx.isNeedWorkflowTask() || !workflowTaskStateMachine.getData().bufferedEvents.isEmpty()) || request.getForceCreateNewWorkflowTask())) {
                scheduleWorkflowTask(ctx);
            }
            workflowTaskStateMachine.getData().bufferedEvents.clear();
            Map<String, ConsistentQuery> queries = data.consistentQueryRequests;
            Map<String, WorkflowQueryResult> queryResultsMap = request.getQueryResultsMap();
            for (Map.Entry<String, WorkflowQueryResult> resultEntry : queryResultsMap.entrySet()) {
                String key = resultEntry.getKey();
                ConsistentQuery query = queries.remove(key);
                if (query != null) {
                    WorkflowQueryResult result = resultEntry.getValue();
                    switch(result.getResultType()) {
                        case QUERY_RESULT_TYPE_ANSWERED:
                            QueryWorkflowResponse response = QueryWorkflowResponse.newBuilder().setQueryResult(result.getAnswer()).build();
                            query.getResult().complete(response);
                            break;
                        case QUERY_RESULT_TYPE_FAILED:
                            query.getResult().completeExceptionally(StatusUtils.newException(Status.INTERNAL.withDescription(result.getErrorMessage()), QueryFailedFailure.getDefaultInstance()));
                            break;
                        case UNRECOGNIZED:
                            throw Status.INVALID_ARGUMENT.withDescription("UNRECOGNIZED query result type for =" + resultEntry.getKey()).asRuntimeException();
                    }
                }
            }
            ctx.onCommit((historySize -> {
                if (workflowTaskStateMachine.getState() == State.INITIATED) {
                    for (ConsistentQuery query : data.queryBuffer.values()) {
                        workflowTaskStateMachine.action(Action.QUERY, ctx, query, NO_EVENT_ID);
                    }
                } else {
                    for (ConsistentQuery consistent : data.queryBuffer.values()) {
                        QueryId queryId = new QueryId(executionId, consistent.getKey());
                        PollWorkflowTaskQueueResponse.Builder task = PollWorkflowTaskQueueResponse.newBuilder().setTaskToken(queryId.toBytes()).setWorkflowExecution(executionId.getExecution()).setWorkflowType(startRequest.getWorkflowType()).setQuery(consistent.getRequest().getQuery()).setWorkflowExecutionTaskQueue(startRequest.getTaskQueue());
                        TestWorkflowStore.TaskQueueId taskQueueId = new TestWorkflowStore.TaskQueueId(consistent.getRequest().getNamespace(), stickyExecutionAttributes == null ? startRequest.getTaskQueue().getName() : stickyExecutionAttributes.getWorkerTaskQueue().getName());
                        store.sendQueryTask(executionId, taskQueueId, task);
                        this.queries.put(queryId.getQueryId(), consistent.getResult());
                    }
                }
                data.queryBuffer.clear();
            }));
        } finally {
            ctx.unlockTimer("completeWorkflowTask");
        }
    }, request.hasStickyAttributes() ? request.getStickyAttributes() : null);
}
Also used : RespondWorkflowTaskFailedRequest(io.temporal.api.workflowservice.v1.RespondWorkflowTaskFailedRequest) RespondActivityTaskCompletedByIdRequest(io.temporal.api.workflowservice.v1.RespondActivityTaskCompletedByIdRequest) NO_EVENT_ID(io.temporal.internal.testservice.StateMachines.NO_EVENT_ID) LongSupplier(java.util.function.LongSupplier) RetryPolicy(io.temporal.api.common.v1.RetryPolicy) QueryRejected(io.temporal.api.query.v1.QueryRejected) Durations(com.google.protobuf.util.Durations) ChildWorkflowExecutionFailedEventAttributes(io.temporal.api.history.v1.ChildWorkflowExecutionFailedEventAttributes) DEFAULT_WORKFLOW_TASK_TIMEOUT_MILLISECONDS(io.temporal.internal.testservice.StateMachines.DEFAULT_WORKFLOW_TASK_TIMEOUT_MILLISECONDS) Duration(java.time.Duration) Map(java.util.Map) Status(io.grpc.Status) WorkflowTaskData(io.temporal.internal.testservice.StateMachines.WorkflowTaskData) WorkflowExecution(io.temporal.api.common.v1.WorkflowExecution) WorkflowExecutionSignaledEventAttributes(io.temporal.api.history.v1.WorkflowExecutionSignaledEventAttributes) CancelExternalData(io.temporal.internal.testservice.StateMachines.CancelExternalData) ContinueAsNewWorkflowExecutionCommandAttributes(io.temporal.api.command.v1.ContinueAsNewWorkflowExecutionCommandAttributes) ChildWorkflowExecutionStartedEventAttributes(io.temporal.api.history.v1.ChildWorkflowExecutionStartedEventAttributes) UpsertWorkflowSearchAttributesCommandAttributes(io.temporal.api.command.v1.UpsertWorkflowSearchAttributesCommandAttributes) RecordMarkerCommandAttributes(io.temporal.api.command.v1.RecordMarkerCommandAttributes) TimeoutType(io.temporal.api.enums.v1.TimeoutType) ActivityTaskScheduledEventAttributes(io.temporal.api.history.v1.ActivityTaskScheduledEventAttributes) MAX_WORKFLOW_TASK_TIMEOUT_MILLISECONDS(io.temporal.internal.testservice.StateMachines.MAX_WORKFLOW_TASK_TIMEOUT_MILLISECONDS) SignalWorkflowExecutionRequest(io.temporal.api.workflowservice.v1.SignalWorkflowExecutionRequest) CronUtils.getBackoffInterval(io.temporal.internal.testservice.CronUtils.getBackoffInterval) Action(io.temporal.internal.testservice.StateMachines.Action) PendingActivityState(io.temporal.api.enums.v1.PendingActivityState) Strings(com.google.common.base.Strings) WorkflowData(io.temporal.internal.testservice.StateMachines.WorkflowData) OptionalLong(java.util.OptionalLong) RetryState(io.temporal.api.enums.v1.RetryState) StartChildWorkflowExecutionFailedEventAttributes(io.temporal.api.history.v1.StartChildWorkflowExecutionFailedEventAttributes) RequestCancelExternalWorkflowExecutionCommandAttributes(io.temporal.api.command.v1.RequestCancelExternalWorkflowExecutionCommandAttributes) SignalExternalData(io.temporal.internal.testservice.StateMachines.SignalExternalData) WorkflowExecutionContinuedAsNewEventAttributes(io.temporal.api.history.v1.WorkflowExecutionContinuedAsNewEventAttributes) ScheduleActivityTaskCommandAttributes(io.temporal.api.command.v1.ScheduleActivityTaskCommandAttributes) QueryFailedFailure(io.temporal.api.errordetails.v1.QueryFailedFailure) WorkflowExecutionConfig(io.temporal.api.workflow.v1.WorkflowExecutionConfig) WorkflowExecutionUtils(io.temporal.internal.common.WorkflowExecutionUtils) ChildWorkflowExecutionCompletedEventAttributes(io.temporal.api.history.v1.ChildWorkflowExecutionCompletedEventAttributes) HistoryEvent(io.temporal.api.history.v1.HistoryEvent) StatusRuntimeException(io.grpc.StatusRuntimeException) ExecutionException(java.util.concurrent.ExecutionException) Lock(java.util.concurrent.locks.Lock) ChildWorkflowExecutionCanceledEventAttributes(io.temporal.api.history.v1.ChildWorkflowExecutionCanceledEventAttributes) Command(io.temporal.api.command.v1.Command) GetWorkflowExecutionHistoryRequest(io.temporal.api.workflowservice.v1.GetWorkflowExecutionHistoryRequest) PollActivityTaskQueueRequest(io.temporal.api.workflowservice.v1.PollActivityTaskQueueRequest) ForkJoinPool(java.util.concurrent.ForkJoinPool) PollWorkflowTaskQueueRequest(io.temporal.api.workflowservice.v1.PollWorkflowTaskQueueRequest) WorkflowExecutionInfo(io.temporal.api.workflow.v1.WorkflowExecutionInfo) PollWorkflowTaskQueueResponse(io.temporal.api.workflowservice.v1.PollWorkflowTaskQueueResponse) EventType(io.temporal.api.enums.v1.EventType) Preconditions(com.google.common.base.Preconditions) WorkflowQueryResult(io.temporal.api.query.v1.WorkflowQueryResult) CancelWorkflowExecutionCommandAttributes(io.temporal.api.command.v1.CancelWorkflowExecutionCommandAttributes) RespondActivityTaskCanceledRequest(io.temporal.api.workflowservice.v1.RespondActivityTaskCanceledRequest) Payloads(io.temporal.api.common.v1.Payloads) DescribeWorkflowExecutionResponse(io.temporal.api.workflowservice.v1.DescribeWorkflowExecutionResponse) ChildWorkflowExecutionTimedOutEventAttributes(io.temporal.api.history.v1.ChildWorkflowExecutionTimedOutEventAttributes) QueryWorkflowRequest(io.temporal.api.workflowservice.v1.QueryWorkflowRequest) RespondActivityTaskCanceledByIdRequest(io.temporal.api.workflowservice.v1.RespondActivityTaskCanceledByIdRequest) LoggerFactory(org.slf4j.LoggerFactory) MarkerRecordedEventAttributes(io.temporal.api.history.v1.MarkerRecordedEventAttributes) TimeoutException(java.util.concurrent.TimeoutException) PendingActivityInfo(io.temporal.api.workflow.v1.PendingActivityInfo) RequestCancelActivityTaskCommandAttributes(io.temporal.api.command.v1.RequestCancelActivityTaskCommandAttributes) RespondActivityTaskFailedRequest(io.temporal.api.workflowservice.v1.RespondActivityTaskFailedRequest) CancelTimerCommandAttributes(io.temporal.api.command.v1.CancelTimerCommandAttributes) FailWorkflowExecutionCommandAttributes(io.temporal.api.command.v1.FailWorkflowExecutionCommandAttributes) StateMachines.newActivityStateMachine(io.temporal.internal.testservice.StateMachines.newActivityStateMachine) RequestCancelWorkflowExecutionRequest(io.temporal.api.workflowservice.v1.RequestCancelWorkflowExecutionRequest) QueryRejectCondition(io.temporal.api.enums.v1.QueryRejectCondition) SignalExternalWorkflowExecutionCommandAttributes(io.temporal.api.command.v1.SignalExternalWorkflowExecutionCommandAttributes) SignalExternalWorkflowExecutionFailedCause(io.temporal.api.enums.v1.SignalExternalWorkflowExecutionFailedCause) ApplicationFailureInfo(io.temporal.api.failure.v1.ApplicationFailureInfo) ConcurrentHashMap(java.util.concurrent.ConcurrentHashMap) Timestamps(com.google.protobuf.util.Timestamps) PollActivityTaskQueueResponseOrBuilder(io.temporal.api.workflowservice.v1.PollActivityTaskQueueResponseOrBuilder) UUID(java.util.UUID) QueryWorkflowResponse(io.temporal.api.workflowservice.v1.QueryWorkflowResponse) Collectors(java.util.stream.Collectors) TerminateWorkflowExecutionRequest(io.temporal.api.workflowservice.v1.TerminateWorkflowExecutionRequest) Objects(java.util.Objects) List(java.util.List) RespondActivityTaskCompletedRequest(io.temporal.api.workflowservice.v1.RespondActivityTaskCompletedRequest) Optional(java.util.Optional) WorkflowExecutionStatus(io.temporal.api.enums.v1.WorkflowExecutionStatus) ProtobufTimeUtils(io.temporal.internal.common.ProtobufTimeUtils) DEFAULT_WORKFLOW_EXECUTION_TIMEOUT_MILLISECONDS(io.temporal.internal.testservice.StateMachines.DEFAULT_WORKFLOW_EXECUTION_TIMEOUT_MILLISECONDS) RespondActivityTaskFailedByIdRequest(io.temporal.api.workflowservice.v1.RespondActivityTaskFailedByIdRequest) AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) PendingChildExecutionInfo(io.temporal.api.workflow.v1.PendingChildExecutionInfo) HashMap(java.util.HashMap) CompletableFuture(java.util.concurrent.CompletableFuture) Timestamp(com.google.protobuf.Timestamp) RespondQueryTaskCompletedRequest(io.temporal.api.workflowservice.v1.RespondQueryTaskCompletedRequest) WorkflowTaskFailedCause(io.temporal.api.enums.v1.WorkflowTaskFailedCause) ActivityTaskData(io.temporal.internal.testservice.StateMachines.ActivityTaskData) StickyExecutionAttributes(io.temporal.api.taskqueue.v1.StickyExecutionAttributes) StartWorkflowExecutionRequest(io.temporal.api.workflowservice.v1.StartWorkflowExecutionRequest) TimerData(io.temporal.internal.testservice.StateMachines.TimerData) Logger(org.slf4j.Logger) ReentrantLock(java.util.concurrent.locks.ReentrantLock) Failure(io.temporal.api.failure.v1.Failure) ChildWorkflowData(io.temporal.internal.testservice.StateMachines.ChildWorkflowData) RespondWorkflowTaskCompletedRequest(io.temporal.api.workflowservice.v1.RespondWorkflowTaskCompletedRequest) StartTimerCommandAttributes(io.temporal.api.command.v1.StartTimerCommandAttributes) StatusUtils(io.temporal.serviceclient.StatusUtils) TimeUnit(java.util.concurrent.TimeUnit) StartChildWorkflowExecutionCommandAttributes(io.temporal.api.command.v1.StartChildWorkflowExecutionCommandAttributes) UpsertWorkflowSearchAttributesEventAttributes(io.temporal.api.history.v1.UpsertWorkflowSearchAttributesEventAttributes) ExternalWorkflowExecutionCancelRequestedEventAttributes(io.temporal.api.history.v1.ExternalWorkflowExecutionCancelRequestedEventAttributes) CompleteWorkflowExecutionCommandAttributes(io.temporal.api.command.v1.CompleteWorkflowExecutionCommandAttributes) State(io.temporal.internal.testservice.StateMachines.State) TestServiceRetryState.validateAndOverrideRetryPolicy(io.temporal.internal.testservice.TestServiceRetryState.validateAndOverrideRetryPolicy) WorkflowTaskData(io.temporal.internal.testservice.StateMachines.WorkflowTaskData) QueryWorkflowResponse(io.temporal.api.workflowservice.v1.QueryWorkflowResponse) PollActivityTaskQueueResponseOrBuilder(io.temporal.api.workflowservice.v1.PollActivityTaskQueueResponseOrBuilder) RespondWorkflowTaskFailedRequest(io.temporal.api.workflowservice.v1.RespondWorkflowTaskFailedRequest) Command(io.temporal.api.command.v1.Command) WorkflowQueryResult(io.temporal.api.query.v1.WorkflowQueryResult) Map(java.util.Map) ConcurrentHashMap(java.util.concurrent.ConcurrentHashMap) HashMap(java.util.HashMap)

Example 2 with StickyExecutionAttributes

use of io.temporal.api.taskqueue.v1.StickyExecutionAttributes in project sdk-java by temporalio.

the class StateMachines method scheduleQueryWorkflowTask.

private static void scheduleQueryWorkflowTask(RequestContext ctx, WorkflowTaskData data, TestWorkflowMutableStateImpl.ConsistentQuery query, long notUsed) {
    ctx.lockTimer("scheduleQueryWorkflowTask");
    StartWorkflowExecutionRequest request = data.startRequest;
    PollWorkflowTaskQueueResponse.Builder workflowTaskResponse = PollWorkflowTaskQueueResponse.newBuilder();
    StickyExecutionAttributes stickyAttributes = ctx.getWorkflowMutableState().getStickyExecutionAttributes();
    String taskQueue = stickyAttributes == null ? request.getTaskQueue().getName() : stickyAttributes.getWorkerTaskQueue().getName();
    workflowTaskResponse.setWorkflowExecution(ctx.getExecution());
    workflowTaskResponse.setWorkflowType(request.getWorkflowType());
    workflowTaskResponse.setAttempt(data.attempt);
    TaskQueueId taskQueueId = new TaskQueueId(ctx.getNamespace(), taskQueue);
    WorkflowTask workflowTask = new WorkflowTask(taskQueueId, workflowTaskResponse);
    ctx.setWorkflowTask(workflowTask);
    ctx.onCommit((historySize) -> {
        if (data.lastSuccessfulStartedEventId > 0) {
            workflowTaskResponse.setPreviousStartedEventId(data.lastSuccessfulStartedEventId);
        }
        data.scheduledEventId = NO_EVENT_ID;
        data.workflowTask = workflowTaskResponse;
        if (query != null) {
            data.consistentQueryRequests.put(query.getKey(), query);
        }
    });
}
Also used : PollWorkflowTaskQueueResponse(io.temporal.api.workflowservice.v1.PollWorkflowTaskQueueResponse) StickyExecutionAttributes(io.temporal.api.taskqueue.v1.StickyExecutionAttributes) TaskQueueId(io.temporal.internal.testservice.TestWorkflowStore.TaskQueueId) WorkflowTask(io.temporal.internal.testservice.TestWorkflowStore.WorkflowTask) StartWorkflowExecutionRequest(io.temporal.api.workflowservice.v1.StartWorkflowExecutionRequest)

Example 3 with StickyExecutionAttributes

use of io.temporal.api.taskqueue.v1.StickyExecutionAttributes in project sdk-java by temporalio.

the class ReplayWorkflowRunTaskHandlerTaskHandlerTests method ifStickyExecutionAttributesAreSetThenWorkflowsAreCached.

@Test
public void ifStickyExecutionAttributesAreSetThenWorkflowsAreCached() throws Throwable {
    // Arrange
    WorkflowExecutorCache cache = new WorkflowExecutorCache(10, new NoopScope());
    WorkflowTaskHandler taskHandler = new ReplayWorkflowTaskHandler("namespace", setUpMockWorkflowFactory(), cache, SingleWorkerOptions.newBuilder().build(), "sticky", Duration.ofSeconds(5), service, null);
    PollWorkflowTaskQueueResponse workflowTask = HistoryUtils.generateWorkflowTaskWithInitialHistory();
    WorkflowTaskHandler.Result result = taskHandler.handleWorkflowTask(workflowTask);
    assertTrue(result.isCompletionCommand());
    // do not cache if completion command
    assertEquals(0, cache.size());
    assertNotNull(result.getTaskCompleted());
    StickyExecutionAttributes attributes = result.getTaskCompleted().getStickyAttributes();
    assertEquals("sticky", attributes.getWorkerTaskQueue().getName());
    assertEquals(Durations.fromSeconds(5), attributes.getScheduleToStartTimeout());
}
Also used : PollWorkflowTaskQueueResponse(io.temporal.api.workflowservice.v1.PollWorkflowTaskQueueResponse) WorkflowTaskHandler(io.temporal.internal.worker.WorkflowTaskHandler) StickyExecutionAttributes(io.temporal.api.taskqueue.v1.StickyExecutionAttributes) NoopScope(com.uber.m3.tally.NoopScope) Test(org.junit.Test)

Example 4 with StickyExecutionAttributes

use of io.temporal.api.taskqueue.v1.StickyExecutionAttributes in project sdk-java by temporalio.

the class TestWorkflowStoreImpl method save.

@Override
public long save(RequestContext ctx) {
    long result;
    lock.lock();
    try {
        ExecutionId executionId = ctx.getExecutionId();
        HistoryStore history = histories.get(executionId);
        List<HistoryEvent> events = ctx.getEvents();
        if (history == null) {
            if (events.isEmpty() || events.get(0).getEventType() != EventType.EVENT_TYPE_WORKFLOW_EXECUTION_STARTED) {
                throw new IllegalStateException("No history found for " + executionId);
            }
            history = new HistoryStore(executionId, lock);
            histories.put(executionId, history);
        }
        history.checkNextEventId(ctx.getInitialEventId());
        history.addAllLocked(events, ctx.currentTime());
        result = history.getNextEventIdLocked();
        timerService.updateLocks(ctx.getTimerLocks());
        ctx.fireCallbacks(history.getEventsLocked().size());
    } finally {
        if (emptyHistoryLockHandle != null && !histories.isEmpty()) {
            // Initially locked in the constructor
            emptyHistoryLockHandle.unlock("TestWorkflowStoreImpl first save");
            emptyHistoryLockHandle = null;
        }
        lock.unlock();
    }
    // Push tasks to the queues out of locks
    WorkflowTask workflowTask = ctx.getWorkflowTask();
    if (workflowTask != null) {
        StickyExecutionAttributes attributes = ctx.getWorkflowMutableState().getStickyExecutionAttributes();
        TaskQueueId id = new TaskQueueId(workflowTask.getTaskQueueId().getNamespace(), attributes == null ? workflowTask.getTaskQueueId().getTaskQueueName() : attributes.getWorkerTaskQueue().getName());
        if (id.getTaskQueueName().isEmpty() || id.getNamespace().isEmpty()) {
            throw Status.INTERNAL.withDescription("Invalid TaskQueueId: " + id).asRuntimeException();
        }
        TaskQueue<PollWorkflowTaskQueueResponse.Builder> workflowTaskQueue = getWorkflowTaskQueueQueue(id);
        workflowTaskQueue.add(workflowTask.getTask());
    }
    List<ActivityTask> activityTasks = ctx.getActivityTasks();
    if (activityTasks != null) {
        for (ActivityTask activityTask : activityTasks) {
            TaskQueue<PollActivityTaskQueueResponse.Builder> activityTaskQueue = getActivityTaskQueueQueue(activityTask.getTaskQueueId());
            activityTaskQueue.add(activityTask.getTask());
        }
    }
    List<Timer> timers = ctx.getTimers();
    if (timers != null) {
        for (Timer t : timers) {
            log.trace("scheduling timer with " + t.getDelay() + "delay. Current time=" + this.currentTime());
            Functions.Proc cancellationHandle = timerService.schedule(t.getDelay(), t.getCallback(), t.getTaskInfo());
            t.setCancellationHandle(cancellationHandle);
        }
    }
    return result;
}
Also used : StickyExecutionAttributes(io.temporal.api.taskqueue.v1.StickyExecutionAttributes) Functions(io.temporal.workflow.Functions) HistoryEvent(io.temporal.api.history.v1.HistoryEvent) Timer(io.temporal.internal.testservice.RequestContext.Timer)

Aggregations

StickyExecutionAttributes (io.temporal.api.taskqueue.v1.StickyExecutionAttributes)4 PollWorkflowTaskQueueResponse (io.temporal.api.workflowservice.v1.PollWorkflowTaskQueueResponse)3 StartWorkflowExecutionRequest (io.temporal.api.workflowservice.v1.StartWorkflowExecutionRequest)2 Preconditions (com.google.common.base.Preconditions)1 Strings (com.google.common.base.Strings)1 Timestamp (com.google.protobuf.Timestamp)1 Durations (com.google.protobuf.util.Durations)1 Timestamps (com.google.protobuf.util.Timestamps)1 NoopScope (com.uber.m3.tally.NoopScope)1 Status (io.grpc.Status)1 StatusRuntimeException (io.grpc.StatusRuntimeException)1 CancelTimerCommandAttributes (io.temporal.api.command.v1.CancelTimerCommandAttributes)1 CancelWorkflowExecutionCommandAttributes (io.temporal.api.command.v1.CancelWorkflowExecutionCommandAttributes)1 Command (io.temporal.api.command.v1.Command)1 CompleteWorkflowExecutionCommandAttributes (io.temporal.api.command.v1.CompleteWorkflowExecutionCommandAttributes)1 ContinueAsNewWorkflowExecutionCommandAttributes (io.temporal.api.command.v1.ContinueAsNewWorkflowExecutionCommandAttributes)1 FailWorkflowExecutionCommandAttributes (io.temporal.api.command.v1.FailWorkflowExecutionCommandAttributes)1 RecordMarkerCommandAttributes (io.temporal.api.command.v1.RecordMarkerCommandAttributes)1 RequestCancelActivityTaskCommandAttributes (io.temporal.api.command.v1.RequestCancelActivityTaskCommandAttributes)1 RequestCancelExternalWorkflowExecutionCommandAttributes (io.temporal.api.command.v1.RequestCancelExternalWorkflowExecutionCommandAttributes)1