工人和工作流之间的比率是多少以及如何管理线程以便工人和工作流数量之间不应该中断如果我启动更多数量的工作流,则会引发以下错误
没有足够的线程来执行工作流。如果此消息始终出现,则应减少 WorkerOptions.maxConcurrentWorklfowExecutionSize 或增加 WorkerOptions.maxWorkflowThreads。
处于阻塞状态的工作流在内存中保持活动状态??处于等待状态的工作流不断检查条件??更多处于等待状态的工作流将保持工作人员被占用??在下面的示例中,线程正在等待信号,工作流的数量被缩放到一百万/天,timetocloseWorkflow = 2 天。触发信号的平均时间是相应工作流程启动后的 1 天
public class TestWorkflowImpl implements TestWorkflow {
private static final Logger logger = LoggerFactory.getLogger(TestWorkflow.class);
private int counter = 0;
private final CounterPrintActivity cpa = Workflow.newActivityStub(CounterPrintActivity.class);
@Override
@WorkflowMethod
public String startWorkflow() {
Workflow.await(() ->counter >= 1000);
return "Complete";
}
@Override
public int getCurrentStatus() {
return counter;
}
@Override
public void setCount(int setNum) {
logger.info("In signal");
counter = counter+setNum;
}
--