Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Faça o servidor executar automaticamente o script asp todos os dias


Adaptado de um artigo que escrevi no aspfaq.com anos atrás.

Use o comando AT e o Windows Scripting Host (ou o agendador de tarefas mais rudimentar) para agendar um arquivo VBS em determinados intervalos.

Primeiro, altere o ASP para um arquivo VBS. Isso é feito (1) alterando a extensão para VBS; (2) alterar todas as chamadas Server.CreateObject para CreateObject; e, (3) removendo todos os <%%> delimitadores e qualquer código destinado ao navegador (por exemplo, instrução response.write ou HTML do lado do cliente). Não tive mais complicações, mas YMMV.

Você armazena o arquivo VBS no sistema de arquivos e usa o comando AT para agendá-lo (isso na verdade agenda sua execução com o serviço de agendamento do Windows). Em um prompt de comando, você pode usar AT sozinho para ver uma lista de tarefas atualmente na agenda. Você pode usar AT /? para descobrir todas as suas possibilidades de sintaxe.

Por exemplo, para que um arquivo seja executado todos os dias da semana às 9h, eu lanço este arquivo em lote (a primeira linha limpa as entradas existentes):
at /delete /y 
at 9:00 /every:m,t,w,th,f d:\net\shared\getdata.vbs      

Observe que não há servidor web envolvido; o arquivo é acessado diretamente através do sistema de arquivos. Depois que superei os obstáculos "um usuário precisa estar logado" e "as tarefas precisam ser redefinidas quando reinicializadas" (ambos os quais acredito serem problemas com a máquina específica que não está sob nosso controle), tudo foi executado por mim tudo bem.

Para obter um exemplo de como usar WSH, CDONTS e o Agendador de Tarefas para enviar emails regularmente, consulte KB nº 221495 .

Se tudo o que você está fazendo é trabalhar com banco de dados no SQL Server, considere usar um trabalho. Isso permitirá que você mantenha todo o processamento do trabalho em seu banco de dados e evitará que as complicações associadas a vários sistemas, conexões e adaptação do código ASP tenham um comportamento diferente do ASP.