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.