Spring State machine Бесконечный цикл в действии - PullRequest
0 голосов
/ 04 марта 2019

Мой Конечный автомат Spring настроен на действие, которое выполняет задачи ввода-вывода навсегда, через базовый цикл while (true).Я использую State Machine Factory , поэтому у меня их несколько.Вопрос в том, что может быть чистым способом гарантировать, что действия всех машин выполняются или, по крайней мере, ставятся в очередь?

Я посмотрел на пример в https://docs.spring.io/spring-statemachine/docs/1.1.0.RC1/reference/htmlsingle/#statemachine-config-commonsettings Я сделал пример конфигурации, в которойвыглядит так:

 config.withConfiguration()
            .autoStartup(false)
            .taskExecutor(ThreadPoolTaskExecutor().also {
                it.corePoolSize = 7
                it.initialize()
            })
            .taskScheduler(ConcurrentTaskScheduler(Executors.newScheduledThreadPool(7)))

Для охранников , которые не происходят вечно (без времени (верно));кажется, что он работает как задумано, казни охранников ставятся в очередь, и как только 7 из них завершены, следующие 7 происходят, и так далее, , но в отношении действий, которые выполняются навсегда , только 7 изони будут выполняться, а очереди не будут, так что в основном только 7 действий конечного автомата выполняются никогда больше .. Как я могу предотвратить это?

Я думал об определении службы Executor в Action (с while (true)) и отправляю вручную, и это вызовет некоторые проблемы ... но не уверен, есть ли лучший способ добиться этого?есть идеи?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...