Каким будет соотношение между рабочим и рабочим процессом и как управлять потоками, чтобы не было сбоев между рабочими и количеством рабочих процессов. Если я запускаю большее количество рабочих процессов, возникает следующая ошибка
Недостаточно потоков для выполнения рабочих процессов. Если это сообщение появляется постоянно, либо 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;
}
--