Przydatne linki |
Zadanie zaplanowane to komponent użytkownika pozwalający na zdefiniowanie zadania wykonywanego okresowo.
Stworzenie zadania zaplanowanego możliwe jest w panelu administratora (Administracja -> Konfiguracja systemu -> Zadania zaplanowane)
Zadanie zaplanowane tworzone jest w oparciu o definicję stworzoną przez użytkownika. Definicja taka musi zawierać następujące elementy:
com.suncode
)Przykładowa definicja przedstawiona jest poniżej:
@ScheduledTask public class ExampleScheduledTask { @Define public void definition( ScheduledTaskDefinitionBuilder builder ) { builder .id( "example-scheduled-task" ) .name( "example.scheduled.task.name" ) .description( "example.scheduled.task.desc" ) .cancelable() .parameter() .id( "scheduled-task-param" ) .name( "example.scheduled.task.param.name" ) .description( "example.scheduled.task.param.desc" ) .type( Types.STRING ) .create(); } public void execute( @Param( value = "scheduled-task-param" ) String param ) { // Ciało zadania zaplanowanego ... } } |
Zadanie zaplanowane musi posiadać metodę o nazwie execute. Metoda może posiadać następujące typy parametrów:
Jeżeli zadanie zaplanowane jest definiowane we wtyczce to należy dodatkowo zaznaczyć, że wtyczka ta udostępnia komponenty. W tym celu należy w pliku suncode-plugin.xml dodać wpis:
<!-- Udostępnianie komponentów (m.in. zadań zaplanowanych) --> <workflow-components key="components" /> |
Zadanie zaplanowane we wtyczce nie musi być komponentem. Może zostać stworzone tak samo, jak zadania zaplanowane definiowane w projektach klienckich - zadanie zaplanowane jako wywołanie publicznej metody.
Np. po stworzeniu klasy we wtyczce:
package com.suncode.plugin; public class SomePluginClass { public void someMethod( String text, Integer number ) { System.out.println( "Text: " + text + ", number: " + number ); } public void someMethod2( String text, Double number ) { System.out.println( "Text: " + text + ", number: " + number ); } } |
Po wpisaniu com.suncode.plugin.SomePluginClass w pole Nazwa klasy w oknie dodawania nowego zadania zaplanowanego wyświetlone zostaną metody someMethod oraz someMethod2, które można wybrać i dodać jako zadanie zaplanowane.
Takie zadania mają jednak ograniczenia:
Ze względu na powyższe ograniczenia funkcjonalność ta powinna służyć jedynie do testowania własnych klas we wtyczkach. Preferowane jest, aby docelowo zadania zaplanowane we wtyczkach były komponentami.
Jeśli zadanie zaplanowane jest napisane po staremu i ma włączoną adnotację cancelable = true to by przerwać wykonywanie takiego zadania należy w kodzie metody dodać warunek:
|