none
Timer Diário como faço? RRS feed

  • Pergunta

  • Bom pessoal, estou iniciando em c# e preciso que a aplicação tenha tarefas agendadas como gerar faturas, etc. Eu usaria o componente Timer mesmo? ou Thead? Como eu posso fazer para que o servidor rode tarefas agendadas no banco de dados?

    Obrigado
    tohma
    quarta-feira, 23 de dezembro de 2009 20:31

Respostas

  • Bom.. tem varias formas de fazer isso, mas eu vi uma interessante aqui:

    O exemplo é para backup, mas se vc modificar os scripts, vc consegue qualquer tarefa...

    Mas dependendo do que vc precise, talvez o melhor seja criar um windows service
    aqui esta um passo-a-passo de como fazer isso:


    Att

    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    SOGI INFORMATIQUE LTÉE (http://www.sogi.com)
    quarta-feira, 23 de dezembro de 2009 20:39
    Moderador
  • O Windows service tem um componente timer especifico... a vantagem ée que ele roda em background. Eu faço assim
    o Windows Service Le uma tabela de jobs, verifica se algum job esta agendado para aquele horarario. Se estiver, executa o job segundo o tipo

    Exemplo da tabela
    JobID Job DataHora Tipo Parametros Frequencia

    Isso é feito a cada 1 minuto (no meu caso)

    Quando um job ée executado ele muda a datahora para o proximo ciclo utilizando frequencia...


    att





    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    SOGI INFORMATIQUE LTÉE (http://www.sogi.com)
    quarta-feira, 23 de dezembro de 2009 21:25
    Moderador

Todas as Respostas

  • Bom.. tem varias formas de fazer isso, mas eu vi uma interessante aqui:

    O exemplo é para backup, mas se vc modificar os scripts, vc consegue qualquer tarefa...

    Mas dependendo do que vc precise, talvez o melhor seja criar um windows service
    aqui esta um passo-a-passo de como fazer isso:


    Att

    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    SOGI INFORMATIQUE LTÉE (http://www.sogi.com)
    quarta-feira, 23 de dezembro de 2009 20:39
    Moderador
  • Deixa ver se entendi, no primeiro caso ele funciona bem com banco de dados, mas se eu tiver uma fila de emails para serem enviados?
    Pode ser que Windows Service me ajude neste caso, mas ficou uma dúvida, se ele fica rodando o tempo todo ... como eu faço para determinar quais períodos ele deve executar tarefas? Voltei na mesma questão.


    David de Barros http://wpro.com.br
    quarta-feira, 23 de dezembro de 2009 20:56
  • O Windows service tem um componente timer especifico... a vantagem ée que ele roda em background. Eu faço assim
    o Windows Service Le uma tabela de jobs, verifica se algum job esta agendado para aquele horarario. Se estiver, executa o job segundo o tipo

    Exemplo da tabela
    JobID Job DataHora Tipo Parametros Frequencia

    Isso é feito a cada 1 minuto (no meu caso)

    Quando um job ée executado ele muda a datahora para o proximo ciclo utilizando frequencia...


    att





    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    SOGI INFORMATIQUE LTÉE (http://www.sogi.com)
    quarta-feira, 23 de dezembro de 2009 21:25
    Moderador
  • O ideal que um projeto Windows Service seja um listener (fica escutando alguma coisa, ex: Socket)...

    Nesse seu caso, acho melhor vc criar um ConsoleApplication, e colocar no Agendador de Tarefas do Windows.


    Henrique Tambalo
    quarta-feira, 23 de dezembro de 2009 22:28