Я немного смущен тем, как модуль «источник: триггер» должен работать в Spring XD. На основе документации вы можете указать дату начала и фиксированную задержку, и теоретически поток, который определяет триггер, должен начинаться только в это время и повторяться на основе фиксированной задержки.Spring XD - модуль «источник: триггер» не работает должным образом
Например:
stream create --name s1 --definition "trigger --date='12/08/14 23:35:00' --fixedDelay=10 | log" --deploy
При развертывании, этот поток, как ожидается, будет уволен в течение самого первого времени точно в 23:35:00 на 12/08/14 (используя формат даты = " MM/dd/yy HH: mm: ss "); однако, уволен только после того, как она развертывается, независимо от того, что время:
23:33:28,409 1.1.0.SNAP INFO DeploymentsPathChildrenCache-0 server.DeploymentListener - Deploying module 'trigger' for stream 's1'
23:33:28,572 1.1.0.SNAP INFO DeploymentsPathChildrenCache-0 server.DeploymentListener - Deploying module [[email protected] moduleName = 'trigger', moduleLabel = 'trigger', group = 's1', sourceChannelName = [null], sinkChannelName = [null], sinkChannelName = [null], index = 0, type = source, parameters = map['date' -> '12/08/14 23:35:00', 'fixedDelay' -> '10'], children = list[[empty]]]
23:33:28,946 1.1.0.SNAP INFO task-scheduler-9 sink.s1 -
23:33:28,954 1.1.0.SNAP INFO Deployer server.StreamDeploymentListener - Deployment status for stream 's1': DeploymentStatus{state=deployed}
23:33:28,955 1.1.0.SNAP INFO Deployer server.StreamDeploymentListener - Stream Stream{name='s1'} deployment attempt complete
Как показывают журналы, поток «s1» фактически вышла на 23:33:28, раньше, чем ожидалось. После запуска, это повторяется каждые 10 секунд в соответствии с настройками в фиксированной задержке:
23:33:38,952 1.1.0.SNAP INFO task-scheduler-9 sink.s1 -
23:33:48,956 1.1.0.SNAP INFO task-scheduler-9 sink.s1 -
23:33:58,961 1.1.0.SNAP INFO task-scheduler-4 sink.s1 -
23:34:08,966 1.1.0.SNAP INFO task-scheduler-2 sink.s1 -
23:34:18,969 1.1.0.SNAP INFO task-scheduler-2 sink.s1 -
23:34:28,973 1.1.0.SNAP INFO task-scheduler-1 sink.s1 -
23:34:38,974 1.1.0.SNAP INFO task-scheduler-9 sink.s1 -
23:34:48,979 1.1.0.SNAP INFO task-scheduler-9 sink.s1 -
23:34:58,984 1.1.0.SNAP INFO task-scheduler-9 sink.s1 -
23:35:08,989 1.1.0.SNAP INFO task-scheduler-9 sink.s1 -
23:35:18,993 1.1.0.SNAP INFO task-scheduler-9 sink.s1 -
23:35:28,998 1.1.0.SNAP INFO task-scheduler-1 sink.s1 -
23:35:39,003 1.1.0.SNAP INFO task-scheduler-1 sink.s1 -
23:35:49,009 1.1.0.SNAP INFO task-scheduler-1 sink.s1 -
23:35:59,013 1.1.0.SNAP INFO task-scheduler-1 sink.s1 -
23:36:09,017 1.1.0.SNAP INFO task-scheduler-1 sink.s1 -
23:36:19,022 1.1.0.SNAP INFO task-scheduler-1 sink.s1 -
Поэтому, почему этот поток не принимая во внимание параметра «дата», но просто срабатывает всякий раз, когда он развернут? Является ли это ошибкой или ожидаемым поведением в Spring XD? Если последний, как я могу настроить такой триггер, чтобы он срабатывал только в данный момент?
BTW, я начал вверх весна XD установка системное свойство «user.timezone» до «СЕТ», просто чтобы убедиться, что весна XD использует тот же TimeZone я работаю в.
Итак, основываясь на этом коде, это означает, что они не могут быть объединены, не так ли? Спасибо за ответ. –
Нет, они не могут. На самом деле мы должны улучшить 'TriggerSourceOptionsMetadata # isValid()', что все эти опции являются взаимоисключающими. Пожалуйста, поднимите вопрос, чтобы рассмотреть их все. –
Создан https://jira.spring.io/browse/XD-2494 для отслеживания этой проблемы – ebottard