Pergunta

Será o envio de e-mails de um aplicativo em uma base programada.

Eu tenho um EmailController na minha aplicação ASP.NET MVC com métodos de ação, um para cada tipo de notificação / e-mail, que terão de ser chamado em momentos diferentes durante a semana.

Pergunta: Windows Scheduler é (rodando em uma caixa Server 2008) melhor ou pior do que agendar este através de um trabalho do SQL Server? E por quê?

Graças

Foi útil?

Solução

IMHO tendo chamada programador para o controlador e executar os métodos de ação para disparar notificações funcionou melhor. Meu processo (para melhor para o pior) é como tal:

  1. Coloque o código para chamar o controlador / ação em um arquivo .vbs. O método de ação requer um "código de segurança" que deve corresponder a um valor no web.config ou então não irá executar (meu pensamento é que isso vai diminuir a chance de algumas pessoas bater o método de ação com a existência navegador e executando a notificação de envio código quando ele não deve ser executado).

  2. Criar uma tarefa agendada no Agendador de chamar esse arquivo em uma base regular.

  3. No meu banco de dados, registrar todas as execuções de notificação e incluir um atributo que define a frequência em que diferentes tipos de notificação deve sair. Isso, novamente, é para diminuir a chance de alguém enviando notificações quando não deveriam.

De qualquer forma, isso funciona. O único problema que tive foi bater vis https. Isso não funcionou como eu acredito que a tarefa estava sendo desafiados a fornecer algumas credenciais (que não podia, pois estava sendo executada por programa). Mudá-lo para http trabalhou e imo não cria qualquer tipo de risco de segurança.

Pensamentos? A melhor maneira de implementar isso? Eu adoraria ouvir qualquer coisa que alguém tem para oferecer.

Graças

Outras dicas

Eu prefiro enviar e-mails com um trabalho de servidor SQL. Como já tinha vários trabalhos em execução no nosso servidor SQL fazia sentido ficar com esta abordagem. Se tivéssemos ido para baixo a rota tarefa agendada teríamos então de tinha 2 sistemas de programação de tarefas diferentes que acrescenta complexidade desnecessária. Com todas as tarefas programadas que ocorrem através de um sistema é fácil de controlar e manter-los.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top