Agende tarefas em Java de forma rápida e segura.
Schedule tasks in Java quickly and securely.
Adicione o ResponsiveScheduler ao seu projeto e crie uma instância como feito abaixo:
ResponsiveScheduler scheduler = new ResponsiveScheduler();Se desejar receber e manipular os eventos do scheduler crie uma classe Listener e adicione ao EventManager:
ClasseListener listener = new ClasseListener();
scheduler.getEventManager().registerListener(listener);Após isso você está pronto para criar tarefas.
Para criar uma tarefa utilizamos o RSTask, que é uma implementação do Runnable para ResponsiveScheduler.
// Esta classe extende a RSTask
TaskTest test = new TaskTest();
// CLASSE TaskTest
public class TaskTest extends RSTask {
@Override
public void run() {
System.out.println("Estou rodando!");
}
}Dentro de uma classe RSTask você pode usar o método setProblem(true) para dizer ao ResponsiveScheduler que algo deu erro na tarefa.
Há várias formas de rodar uma tarefa, você repetir ela várias vezes, executar após um tempo ou apenas executar de forma async.
Apesar dos nomes todas as tarefas rodam fora de thread principal, ou seja, async
Rodar uma tarefa no pool de threads (a task entrará numa fila de execuções):
// adicione a task
scheduler.runTask(test); // isso executará a task
ResponsiveScheduler.run(Runnable: runnable); // executa uma task runnableRodar uma tarefa numa thread dedicada:
// adicione a task
scheduler.runAsyncTask(test); // isso executará a taskRodar uma tarefa após um tempo:
// adiciona a tarefa e o tempo em millisegundos
scheduler.runTaskAfter(test, 2000); // isso executará a task após 2 segundosRodar uma tarefa de tempos em tempos:
// adiciona a tarefa e o tempo/delay em millisegundos
scheduler.repeatTask(test, 0, 2000); // executa a task sem delay (0) a cada 2 segundosPara cancelar tarefas é muito simples, use o método cancelTask(task); para cancelar uma tarefa especifica ou use cancelAllTasks(); para cancelar todas.
Para finalizar o ResponsiveScheduler é necessário usar a função shutdown();, essa função irá finalizar todas as tarefas e liberar todas as threads usadas. Obs.: Serão emitidos eventos de cancelamento quando as tarefas forem finalizadas pelo shutdown.