Escrevi um script R que extrai alguns dados de um banco de dados, executa várias operações nele e publica a saída em um novo banco de dados.
Gostaria que este script fosse executado todos os dias em um horário específico, mas não consigo encontrar nenhuma maneira de fazer isso de forma eficaz.
Alguém pode recomendar um recurso que eu possa consultar para resolver esse problema? Estou executando este script em uma máquina Windows.
.R
e NÃO.r
.Supondo que seu script R esteja
mytest.r
, localizado emD:\mydocuments\
, você pode criar um arquivo em lote incluindo o seguinte comando:Em seguida, adicione-o, como uma nova tarefa, ao agendador de tarefas do Windows, definindo lá as condições de disparo.
Você também pode omitir o arquivo em lote. Defina
C:\R\R-2.10.1\bin\Rcmd.exe
naprogram/script
caixa de texto no agendador de tarefas e forneça comoArguments
o resto do comando inicial:BATCH D:\mydocuments\mytest.r
Agendando tarefas R por meio do Agendador de tarefas do Windows (Postado em 11 de fevereiro de 2015)
taskscheduleR: pacote R para agendar scripts R com o gerenciador de tarefas do Windows (Postado em 17 de março de 2016)
EDITAR
Recentemente, adotei o uso de arquivos em lote novamente, porque queria que a janela cmd fosse minimizada (não consegui encontrar outra maneira).
Especificamente, preencho a
Actions
guia do agendador de tarefas do Windows da seguinte maneira:Program/script:
cmd.exe
Add arguments (optional):
/ c start / min D: \ mydocuments \ mytest.bat ^ & exit
Conteúdo de mytest.bat :
C: \ R \ R-3.5.2 \ bin \ x64 \ Rscript.exe D: \ mydocuments \ mytest.r params
fonte
Rscript
é preferívelR BATCH
. Os sistemas que podem diferenciar entre maiúsculas e minúsculas também obtêmr
.Agora existe uma opção embutida no RStudio para fazer isso, para executar o programador primeiro instale abaixo dos pacotes
Depois de instalar, vá para
fonte
Eu configurei minhas tarefas por meio do
SCHTASKS
programa. Para executar scripts na inicialização, você escreveria algo ao longo das linhas deConsulte este site para obter mais detalhes sobre
SCHTASKS
. Mais detalhes no site da Microsoft .fonte
Você pode usar o Windows Task Scheduler .
fonte
Configurando o agendador de tarefas
Etapa 1) Abra o agendador de tarefas (Iniciar> pesquisar o Agendador de tarefas)
Etapa 2) Clique em "Ação"> "Criar Tarefa"
Etapa 3) Selecione "Executar apenas quando o usuário estiver conectado", desmarque "Executar com privilégios mais altos", nomeie sua tarefa, configure para "Windows Vista / Windows Server 2008"
Etapa 4) Na guia "Triggers", defina quando deseja que o script seja executado
Etapa 5) Na guia "Ações", coloque a localização completa do arquivo Rscript.exe, ou seja,
Coloque o nome do seu script com
-e
esource()
em argumentos, envolvendo-o assim:Solução de problemas de um Rscript agendado no Agendador de tarefas
Quando você executa um script usando o Agendador de tarefas, é difícil solucionar quaisquer problemas porque você não recebe nenhuma mensagem de erro.
Isso pode ser resolvido usando a
sink()
função em R, que permitirá a saída de todas as mensagens de erro para um arquivo que você especificar. Veja como você pode fazer isso:A outra coisa que você terá que mudar para fazer seu Rscript funcionar é especificar o caminho completo de qualquer caminho de arquivo em seu script.
Isso não funcionará no agendador de tarefas:
Você precisará especificar o caminho completo do arquivo de todos os scripts que você está fornecendo em seu Rscript:
fonte
Depois de seguir qualquer combinação dessas etapas e receber o
"Argument Batch Ignored"
erro após a execução de R.exe, tente fazer isso, funcionou para mim.No Windows Task Scheduler:
Substitua
BATCH "C:\Users\desktop\yourscript.R"
no campo de argumentoscom
CMD BATCH --vanilla --slave "C:\Users\desktop\yourscript.R"
fonte