<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pt-BR">
	<id>http://wiki.biserp.com.br/index.php?action=history&amp;feed=atom&amp;title=Scheduler_-_BISv2</id>
	<title>Scheduler - BISv2 - Histórico de revisão</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.biserp.com.br/index.php?action=history&amp;feed=atom&amp;title=Scheduler_-_BISv2"/>
	<link rel="alternate" type="text/html" href="http://wiki.biserp.com.br/index.php?title=Scheduler_-_BISv2&amp;action=history"/>
	<updated>2026-04-08T20:14:47Z</updated>
	<subtitle>Histórico de revisões para esta página neste wiki</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>http://wiki.biserp.com.br/index.php?title=Scheduler_-_BISv2&amp;diff=1093&amp;oldid=prev</id>
		<title>Rodrigogml: Criou página com &#039;O Scheduler é o serviço de agendamento do framework BISCore. Ele é carregado na inicialização do container (deploy do EAR), e é responsável por disparar as atividades p...&#039;</title>
		<link rel="alternate" type="text/html" href="http://wiki.biserp.com.br/index.php?title=Scheduler_-_BISv2&amp;diff=1093&amp;oldid=prev"/>
		<updated>2020-10-20T13:19:26Z</updated>

		<summary type="html">&lt;p&gt;Criou página com &amp;#039;O Scheduler é o serviço de agendamento do framework BISCore. Ele é carregado na inicialização do container (deploy do EAR), e é responsável por disparar as atividades p...&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nova&lt;/b&gt;&lt;/p&gt;&lt;div&gt;O Scheduler é o serviço de agendamento do framework BISCore. Ele é carregado na inicialização do container (deploy do EAR), e é responsável por disparar as atividades programadas na hora certa.&lt;br /&gt;
&lt;br /&gt;
== Requisitos ==&lt;br /&gt;
&lt;br /&gt;
* As tarefas do Scheduler poderão definir uma coleção de propriedades, similares ao [[SystemProperties]]. Essas propriedades serão passadas para a tarefa na sua execução e poderão ser retornadas no método. Estas serão persistidas e serão passadas durante sua próxima execução. Retornar o valor NULL significa que não houve alteração, enquanto que retornar uma coleção de propriedades vazias indica que o sistema deve excluir todas as propriedades da tarefa.&lt;br /&gt;
* Toda tarefa tem uma data e hora para ser executada.&lt;br /&gt;
* Toda tarefa terá um Identificador (que não o do banco de dados) que pode ser definido pelo seu plugin owner, este identificador será único entre todas as tarefas. Tem a finalidade de permitir que o plugin encontre um agendamento sem que tenha seu ID de banco associado. Como por exemplo um agendamento genérico de manutenção do plugin.&lt;br /&gt;
* A tarefa terá o nome completo da classe que executará a tarefa. Esta deverá implementar a interface de tarefas do BIS que define os métodos para execução (BISTask).&lt;br /&gt;
* As tarefas deverão manter a data da sua última execução.&lt;br /&gt;
* As tarefas poderão ter um padrão de repetição ou re-agendamento automático após sua última execução conforme descrito abaixo:&lt;br /&gt;
** &amp;#039;&amp;#039;&amp;#039;TIMED (Temporizado):&amp;#039;&amp;#039;&amp;#039; A atividade é iniciada no horário programado e re-executada após períodos fíxos a partir da data de início. Por exemplo, repetir a cada 15 minutos a partir de 01/01/2011 15:32:25. Caso no próximo horário de repetição a atividade ainda esteja sendo executada não será iniciada outra execução da mesma atividade, o horário será pulado e a atividade será executada somente no próximo horário de repetição definido.&lt;br /&gt;
* As tarefas agendadas poderão ter uma data fim para finalizar as repetições. Isto é, caso seu novo agendamento passe a data fim ela não será mais re-agendada.&lt;br /&gt;
* As tarefas devem ter um atributo que define o que fazer em caso de atraso na execução. Este atraso refere-se apenas nos casos em que o sistema esteja desligado durante o horário que a tarefa devia ser executada, e quanto o sistema iniciar novamente qual o procedimento adotado com esta tarefa atrasada. Podendo definir as seguintes situações:&lt;br /&gt;
** Neste atributo podemos definir um tempo máximo de atraso aceito para que a tarefa seja executada;&lt;br /&gt;
** Definir que a tarefa deve ser executada de imediato, não importando o quanto atrasado esteja;&lt;br /&gt;
** Não executar atrasada, dar continuidade no agendamento. Se a tarefa tem repetição será agendada para o próximo horário conforme suas definições, ou, se for uma tarefa que não se repete, esta não será mais executada.&lt;br /&gt;
** O Scheduler deve ouvir os eventos de alteração/inclusão/exclusão de agendamentos para que possa processa-las a medida que forem feitas e não apenas quando o sistema iniciar.&lt;br /&gt;
&lt;br /&gt;
== Scheduler Component (GUI) ==&lt;br /&gt;
Para configurar o agendamento de uma tarefa o próprio serviço oferece um componente para ser usado na camada de apresentação que receberá o SchedulingVO e o manipulará de acordo com as escolhas que o usuário fizer na GUI.&lt;br /&gt;
Este componente estará sempre atualizado com a tela, pois poderá ser solicitado a qualquer momento, ou mesmo já estar em uso simultâneo.&lt;br /&gt;
&lt;br /&gt;
== Agendando uma Nova Task ==&lt;br /&gt;
&lt;br /&gt;
Um passo à passo para criar uma nova task:&lt;br /&gt;
# Crie uma nova classe (lembre-se de usar o sufixo &amp;quot;Task&amp;quot; de acordo com Padrão de Nomes (descrito em [[Formatação e Escrita de Código]]), e implemente a interface [[BISTask]].&lt;br /&gt;
# Dentro do método definido pela interface, implemente as operações necessárias, para detalhes sobre o método (parâmetros e retornos) leia o tópico [[BISTask]].&lt;br /&gt;
&lt;br /&gt;
Depois de implementada a task, precisamos definir como e quando ela será executa para criar o SchedulerVO. Para saber como popular o SchedulerVO utilize a descrição dos campos no JavaDoc. Uma vez que o objeto esteja criado, basta salvar o agendamento no BISCore através da sua fachada que a tarefa será processada e já passará a funcionar automaticamente.&lt;/div&gt;</summary>
		<author><name>Rodrigogml</name></author>
	</entry>
</feed>