Para desenvolver e planejar tarefas, utilize um planejador configurado.
Procedimento
- Consulte um planejador configurado. Consulte o tópico Acessando Planejamentos. Cada planejador configurado está disponível
em dois diferentes modelos de programação:
- Um aplicativo de servidor Java™ Platform, Enterprise Edition (Java EE), como um servlet
ou um componente EJB (Enterprise JavaBeans), pode utilizar a API Scheduler. Os
planejadores são acessados procurando-os por meio de um nome de JNDI (Java Naming
and Directory Interface) ou uma referência de recurso.
- Os aplicativos JMX (Java Management
Extensions), como scripts wsadmin, podem utilizar a API Scheduler utilizando MBeans
WASScheduler.
- Desenvolva a tarefa.
A API do Planejador suporta diferentes
implementações da interface TaskInfo, cada uma podendo ser utilizada para planejar
um tipo de trabalho específico. Consulte o tópico Desenvolvendo uma Tarefa que Chama um Bean
de Sessão e o tópico Desenvolver uma Tarefa que Envia uma Mensagem Java Message Service (JMS) para obter detalhes. O objeto de tarefa referido no tópico Desenvolver uma Tarefa que Envia uma
Mensagem Java Message Service (JMS) pode enviar uma mensagem
JMS para uma fila ou um tópico.
Atenção: A criação e manipulação de tarefas planejadas
por meio da interface Scheduler são suportadas apenas a partir do contêiner EJB ou
do contêiner da Web (Enterprise Beans ou servlets).
A consulta e uso de um planejador configurado a
partir de um contêiner de aplicativo cliente Java EE não são suportados.
- Receba notificações do planejador. Um depósito de notificação é definido em uma tarefa para receber os eventos
de notificação que são gerados por um scheduler quando ele executa uma operação
na tarefa.
- Utilize calendários personalizados. Você pode designar um
bean de sessão UserCalendar para uma tarefa que permite aos planejadores
utilizar algoritmos de data customizados e predefinidos para determinar quando
uma tarefa deve ser executada. Consulte o tópico Interface UserCalendar
para obter detalhes.
- Envie tarefas para um planejador. Depois que um objeto TaskInfo tiver sido criado, ele pode ser submetido ao
scheduler para a criação da tarefa, chamando o método Scheduler.create().
- Gerencie tarefas com um planejador.
- Proteja tarefas com um planejador.
Exemplo
É possível usar os calendários SIMPLE e CRON a partir de qualquer aplicativo Java
EE. Este exemplo ilustra o processo.
Usando calendários do planejador padrão. O código a seguir ilustra como usar conexões corretamente e incorretamente.
O uso de calendários de planejador padrão envolve a consulta do objeto home UserCalendarHome Enterprise JavaBeans (EJB) padrão, criando o bean UserCalendar e chamando o método applyDelta(). Para obter detalhes sobre o método applyDelta e também a sintaxe para os calendários SIMPLE e CRON, consulte o tópico Interface de UserCalendar.
import java.util.Date;
import javax.naming.InitialContext;
import javax.rmi.PortableRemoteObject;
import com.ibm.websphere.scheduler.UserCalendar;
import com.ibm.websphere.scheduler.UserCalendarHome;
// Crie um contexto inicial
InitialContext ctx = new InitialContext();
// Procure e restrinja o início do UserCalendar padrão.
UserCalendarHome defaultCalHome=(UserCalendarHome)
PortableRemoteObject.narrow(ctx.lookup(
UserCalendarHome.DEFAULT_CALENDAR_JNDI_NAME),
UserCalendarHome.class);
// Crie a instância do UserCalendar padrão.
UserCalendar defaultCal = defaultCalHome.create();
// Calcule uma data utilizando CRON com base na
// data e hora atual. Retorne a próxima data que é
// Sábado às 2:00
Date newDate =
defaultCal.applyDelta(new Date(),
"CRON", "0 0 2 ? * SAT");