edimar 0 Denunciar post Postado Novembro 12, 2010 Pessoal, Estou desenvolvendo um serviço que deve ser executado todo dia em um determinado horario. Existe alguma forma de definir esse horario? Sei que consigo programar para ele ser executado a xx horas apos uma execução. Porem estava querendo definir um horario especifico. Compartilhar este post Link para o post Compartilhar em outros sites
eriva_br 7 Denunciar post Postado Novembro 12, 2010 um saída seria fazer uma busca em alguma tabela de configuração no banco de dados ou mesmo no app.config e definir um timer no evento OnStart Exemplo: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Diagnostics; using System.Linq; using System.ServiceProcess; using System.Text; using System.Timers; using System.Configuration; namespace WindowsService1 { public partial class Service1 : ServiceBase { private Timer iTimer; public Service1() { InitializeComponent(); } protected override void OnStart(string[] args) { iTimer = new System.Timers.Timer(); int iTempoDecorrido = Convert.ToInt16(ConfigurationManager.AppSettings["TempoVerificacao"]); iTempoDecorrido = iTempoDecorrido * 60000; iTimer.AutoReset = true; iTimer.Elapsed += new ElapsedEventHandler(OnElapsedTime); iTimer.Interval = iTempoDecorrido; iTimer.Start(); } protected override void OnStop() { iTimer.Stop(); iTimer.Dispose(); GC.Collect(); } private void OnElapsedTime(object source, ElapsedEventArgs e) { iTimer.Stop(); try { //FAZ O QUE TEM QUE FAZER AQUI } catch (Exception ex) { //COLOCAR O TRATAMENTO DE ERROS AQUI } GC.Collect(); GC.WaitForPendingFinalizers(); iTimer.Start(); } } } se tiver algum outro método por favor poste aqui, pois não sei se é a forma mais correta mas funciona, quando preciso, faço dessa formaabs cheers! Compartilhar este post Link para o post Compartilhar em outros sites
edimar 0 Denunciar post Postado Novembro 12, 2010 um saída seria fazer uma busca em alguma tabela de configuração no banco de dados ou mesmo no app.config e definir um timer no evento OnStart não sei se é a forma mais correta, mas funciona abs Eu desenvolvi até o momento dessa forma, onde eu tenho o Time no config dizendo que deve ser executando a cada 24hs. Porém isso vai me obrigar por exemplo a startar o serviço a primeira vez as 20hs, caso eu queira que a rotina execute todo dia as 20hs... A minha duvida é se teria alguma forma de startar o serviço a qualquer hora do dia porem ele só iria executar a rotina as 20hs.. Compartilhar este post Link para o post Compartilhar em outros sites
eriva_br 7 Denunciar post Postado Novembro 12, 2010 Eu desenvolvi até o momento dessa forma, onde eu tenho o Time no config dizendo que deve ser executando a cada 24hs. Porém isso vai me obrigar por exemplo a startar o serviço a primeira vez as 20hs, caso eu queira que a rotina execute todo dia as 20hs... A minha duvida é se teria alguma forma de startar o serviço a qualquer hora do dia porem ele só iria executar a rotina as 20hs.. uma idéa seria no evento onStart você verificar a hora definida no config e fazer umas contas para acertar o timer para o momento correto e qdo. entrar no time reajustar o horario do timer para a próxima execuçãoeditei meu post anterior e coloquei um exemplo, acho que você postou antes de eu editar, de qualquer forma, verifica o exemplo e tenta adaptar nele Compartilhar este post Link para o post Compartilhar em outros sites