ワーカーとワークフローの比率と、ワーカーとワークフローの数の間で停止が発生しないようにスレッドを管理する方法エラーがスローされた後、より多くのワークフローを開始すると
ワークフローを実行するのに十分なスレッドがありません。このメッセージが常に表示される場合は、WorkerOptions.maxConcurrentWorklfowExecutionSize を減らすか、WorkerOptions.maxWorkflowThreads を増やす必要があります。
ブロッキング状態のワークフローはメモリ内でアクティブなままになりますか?? 待機状態のワークフローは継続的に条件をチェックします??待機状態のワークフローの数が増えると、作業者は占有され続けます?? 以下の例では、スレッドはシグナルを待っています。ワークフローの数は 100 万/日、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;
}
--