Nody typu Timer

Autor: Marcin Kasiński
21.01.2011 13:24:00 +0200

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.

TimeoutControl

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:

  • ActionOkreśla, czy notyfikacja jest tworzona, czy usuwana.
  • IgnoreMissedOkreś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).
  • AllowOverwriteOkreś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).

TimeoutNotification

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
Zachęcam do przedstawienia swoich uwag i opinii w polu komentarzy.

Komentarze

Dodaj Komentarz