Também poderia mandar rodar todo dia após as 00:01 e persistir a data da última atualização no banco a fim de não executar o método novamente no mesmo dia.
Não há outra maneira mais clássica de resolver isso?
ele nao vai saber se foi ou nao executado, ele vai executar na regra que vc passou para ele.
se vc quer saber se foi executado, vc vai ter que implentar alguma forma de log, salvar num arquivo, bd e por vai.
[quote=alissonvla]ele nao vai saber se foi ou nao executado, ele vai executar na regra que vc passou para ele.
se vc quer saber se foi executado, vc vai ter que implentar alguma forma de log, salvar num arquivo, bd e por vai.
t+[/quote]
cria uma tabela pra armazenar os logs, ou aproveita uma tabela ja existente
mas ainda seria legal usar o quartz para futuras necessidades relacionadas
a executão de rotinas com hora marcada…
O quartz tem uma opção nas suas triggers que é o ‘recovery’: se o sistema não estava up no momento em que a trigger devia ter sido disparada, ou se houve erro, ele executa assim que possível, ou seja, quando voltar à execução, subir o server, etc.
E o agendamento diário é feito com base em cron, não tem erro; vai executar uma vez por dia e era isso.
Abraço!
[quote=leoramos]O quartz tem uma opção nas suas triggers que é o ‘recovery’: se o sistema não estava up no momento em que a trigger devia ter sido disparada, ou se houve erro, ele executa assim que possível, ou seja, quando voltar à execução, subir o server, etc.
E o agendamento diário é feito com base em cron, não tem erro; vai executar uma vez por dia e era isso.
Abraço![/quote]
poxa, bacana! mas como ele sabe se já foi executado sem usar algum tipo de persistência?
[quote=leoramos]Não sabe. Ele usa persistência hehe
O quartz tem tabelas “próprias” que ele usa pra isso. Não podes usar banco de dados?
Abraço![/quote]
até posso, mas queria saber se existe alguma solução mais clássica pra isso… porém acredito q, no meu caso, seria um problema arquitetural… veja esse tópico q abri no fórum de arquitetura de sistemas, vc vai entender pq tanta discussão… http://www.guj.com.br/java/257268-atualizacao-de-dados-num-bd-compartilhado
Na verdade, não faz diferença o fato d’ele ser acessado por diversos sistemas. O problema é se cada sistema estiver rodando num servidor de aplicação (ou instãncia de) diferente. Daí vais ter que pôr o quartz pra funcionar em cada um desses sistemas, ia ficar meio redundante. Funciona, mas não acredito que seja a melhor opção.
Não sei qual é a atualização que tens que fazer nesse campo, mas eu usaria o próprio Scheduler do SQLServer. O bichão funciona bem, não tem muito o que errar.
Abraço!
[quote=leoramos]Na verdade, não faz diferença o fato d’ele ser acessado por diversos sistemas. O problema é se cada sistema estiver rodando num servidor de aplicação (ou instãncia de) diferente. Daí vais ter que pôr o quartz pra funcionar em cada um desses sistemas, ia ficar meio redundante. Funciona, mas não acredito que seja a melhor opção.
Não sei qual é a atualização que tens que fazer nesse campo, mas eu usaria o próprio Scheduler do SQLServer. O bichão funciona bem, não tem muito o que errar.
Abraço![/quote]
vc tem razão, o agente não funcionaria se uma das aplicações estivesse rodando num servidor diferente, que não é o caso aqui, mas pode ser que um dia seja!