Nody typu Timeout są nowego rodzaju nodami typu input.
Pozwalają one na zainicjowanie przepływu nie poprzez pojawienie się komunikatu w kolejce,
pojawienie się żądania HTTP, czy innych standardowych nodów typu input.
Nody typu Timeout pozwalają na zainicjowanie przepływu na zasadzie schedulera.
W najprostszym przypadku przeplyw jest inicjowany zaraz po uruchomieniu przepływu i następnie co określony
na nodzie TimeoutNotification interwał czasowy.
Jest to nod, który przyjmuje wejściowy komunikat np. wygenerowany ręcznie w nodzie Compute,
dokonuje walidacji struktury komunikatu a następnie zapisuje odpowiedni komunikat w kolejce
SYSTEM.BROKER.TIMEOUT.QUEUE
.
Taki utworzony komunikat TimeoutRequest ma postać:
<TimeoutRequest>
<Action>SET | CANCEL</Action>
<Identifier>Identyfikator</Identifier>
<StartDate>TODAY | yyyy-mm-dd</StartDate>
<StartTime>NOW | hh:mm:ss</StartTime>
<Count>licznik wystąpień</Count>
<Interval>Interwał w sekundach</Interval>
<IgnoreMissed>TRUE | FALSE</IgnoreMissed>
<AllowOverwrite>TRUE | FALSE</AllowOverwrite>
</TimeoutRequest>
gdzie:
Action
Określa, czy notyfikacja jest tworzona, czy usuwana.
IgnoreMissed
Określa, czy notyfikacje Timeout, które powinny zostać wygenerowane,
kiedy przepływ jest zatrzymany powinny zostać zignoowane (TRUE), czy też
wywołane w momencie ponownego uruchomienia przepływu (FALSE).
AllowOverwrite
Określa, czy ponowne wywołanie komunikatu TimeoutRequest o tym samym
identyfikatorze ma nadpisać już istniejący (TRUE), czy też jest to niemoziwe
i w takeij sytuacji zostanie wygenerowany błąd (FALSE).
Tego typu nod pozwala na wygenerowanie komunikatu typu timeout
LocalEnvironment
(
(0x01000000):TimeoutRequest = (
(0x03000000):Action = 'SET'
(0x03000000):Identifier = 'TNIDENTIFER'
(0x03000000):StartDate = '2007-02-20'
(0x03000000):StartTime = '18:47:36.116'
(0x03000000):Count = 2
(0x03000000):Interval = 60
(0x03000000):IgnoreMissed = TRUE
(0x03000000):AllowOverwrite = TRUE
)
)
Powrót