diff --git a/temporal-sdk/src/test/java/io/temporal/workflow/MetricsTest.java b/temporal-sdk/src/test/java/io/temporal/workflow/MetricsTest.java index 17178b199..ece0b908e 100644 --- a/temporal-sdk/src/test/java/io/temporal/workflow/MetricsTest.java +++ b/temporal-sdk/src/test/java/io/temporal/workflow/MetricsTest.java @@ -488,7 +488,7 @@ public void testStickyCacheSize() throws InterruptedException, ExecutionExceptio setUp(WorkerFactoryOptions.getDefaultInstance()); Worker worker = testEnvironment.newWorker(TASK_QUEUE); - worker.registerWorkflowImplementationTypes(TestWorkflowWithSleep.class); + worker.registerWorkflowImplementationTypes(TestWorkflowWithSignal.class); testEnvironment.start(); Thread.sleep(REPORTING_FLUSH_TIME); @@ -500,7 +500,8 @@ public void testStickyCacheSize() throws InterruptedException, ExecutionExceptio .setWorkflowRunTimeout(Duration.ofSeconds(7000)) .setTaskQueue(TASK_QUEUE) .build(); - NoArgsWorkflow workflow = workflowClient.newWorkflowStub(NoArgsWorkflow.class, options); + CacheMetricsWorkflow workflow = + workflowClient.newWorkflowStub(CacheMetricsWorkflow.class, options); CompletableFuture wfFuture = WorkflowClient.execute(workflow::execute); SDKTestWorkflowRule.waitForOKQuery(WorkflowStub.fromTyped(workflow)); @@ -508,6 +509,7 @@ public void testStickyCacheSize() throws InterruptedException, ExecutionExceptio reporter.assertGauge(STICKY_CACHE_SIZE, TAGS_NAMESPACE, 1); reporter.assertGauge(WORKFLOW_ACTIVE_THREAD_COUNT, TAGS_NAMESPACE, val -> val == 1 || val == 2); + workflow.complete(); wfFuture.get(); Thread.sleep(REPORTING_FLUSH_TIME); @@ -645,11 +647,26 @@ public String execute() { } } - public static class TestWorkflowWithSleep implements NoArgsWorkflow { + @WorkflowInterface + public interface CacheMetricsWorkflow { + @WorkflowMethod + void execute(); + + @SignalMethod + void complete(); + } + + public static class TestWorkflowWithSignal implements CacheMetricsWorkflow { + private boolean complete; @Override public void execute() { - Workflow.sleep(5000); + Workflow.await(() -> complete); + } + + @Override + public void complete() { + complete = true; } }