Como agendar scripts R

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br


agendar tarefa r com o agendador de tarefas


Executando R com taskcheduleR e cronR

Em uma postagem anterior, falamos sobre como executar o R ​​no Agendador de tarefas do Windows. Este artigo abordará duas abordagens adicionais para agendar scripts R, incluindo o uso do método agendador de tarefas pacote no Windows e no cronR pacote para Linux. Para agendar código Python, confira esta postagem.

Planejar scripts R com taskcheduleR

Vamos instalar agendador de tarefas usando o install.packages comando.

install.packages("taskscheduleR")

Em seguida, precisamos carregar o pacote para começar.

library(taskscheduleR)

Criando um Script R de Amostra para Executar Automaticamente

Antes de fazer qualquer agendamento, precisamos primeiro criar um script. Salvaremos o código abaixo em um arquivo chamado “create_file.txt”. Esse script irá gerar aleatoriamente uma coleção de números inteiros e gravá-los em um arquivo.

nums 

Using the taskscheduler_create function

Next, in order to schedule the script to run automatically, we need to use the taskscheduler_create function. This function takes several arguments, which can be seen below.

taskscheduler_create(taskname = "test_run", rscript = "/path/to/file/create_file.R", 
                     schedule = "ONCE", starttime = format(Sys.time() + 50, "%H:%M"))


Primeiro, precisamos dar um nome à tarefa que queremos criar. Nesse caso, chamaremos nossa tarefa de "test_run". Em seguida, precisamos especificar o script R que queremos executar automaticamente. Terceiro, adicionamos o cronograma parâmetro, que indica com que frequência queremos executar esse script. Existem várias opções aqui, incluindo SEMANAL, DIARIAMENTE, MENSAL, HORA E MINUTO. Por exemplo, se queremos que nosso script seja executado todos os dias, modificaríamos nossa chamada de função da seguinte maneira:

taskscheduler_create(taskname = "test_run", rscript = "/path/to/file/create_file.R", 
                     schedule = "DAILY", starttime = format(Sys.time() + 50, "%H:%M"))


O outro parâmetro que precisamos selecionar é a hora de início. Em nossos exemplos, definimos a tarefa para iniciar em 50 segundos a partir do horário atual.

Além desses argumentos, taskscheduler_create também possui um parâmetro chamado "modificador". Isso nos permite modificar a frequência do agendamento. Por exemplo, e se quisermos executar a tarefa a cada 2 horas? Nesse caso, definiríamos apenas modifier = 2.

taskscheduler_create(taskname = "test_run", rscript = "/path/to/file/create_file.R", 
                     schedule = "HOURLY", starttime = format(Sys.time() + 50, "%H:%M"), modifier = 2)


.

Da mesma forma, poderíamos executar nosso script a cada 10 minutos usando o código abaixo, com um modificador de 10.

taskscheduler_create(taskname = "test_run", rscript = "/path/to/file/create_file.R", 
                     schedule = "MINUTE", starttime = format(Sys.time() + 50, "%H:%M"), modifier = 10)

Passando argumentos para o Agendador de Tarefas

Podemos passar argumentos para a tarefa agendada usando o parâmetro "rscript_args".

taskscheduler_create(taskname = "test_run", rscript = "/path/to/file/create_file.R", 
                     schedule = "MINUTE", starttime = format(Sys.time() + 50, "%H:%M"), modifier = 10,
                     rscript_args = c("10", "test", "this"))

Listando as tarefas no planejador

E se quisermos olhar para todas as tarefas atualmente no agendador de tarefas? Existe um método rápido para isso chamado taskscheduler_ls.

taskscheduler_ls()

A execução dessa função retorna um quadro de dados de todas as tarefas atualmente no agendador de tarefas.

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br

Excluindo tarefas do agendador

As tarefas podem ser excluídas do agendador usando o taskscheduler_delete função. Só precisamos inserir o nome da tarefa.

taskscheduler_delete("test_run")

Parando tarefas

Da mesma forma, as tarefas também podem ser interrompidas com uma única chamada de função. Desta vez, usaremos o taskscheduler_stop função.

taskscheduler_stop("test_run")

Agendando Tarefas no Linux

Se você estiver executando no Linux, há um pacote alternativo chamado cronR qual pode ser usado. Para usar este pacote no Linux, precisamos instalá-lo usando devtools, como abaixo.

devtools::install_github("bnosac/cronR")

Além disso, o daemon cron precisa estar em execução para que o pacote funcione corretamente. No Debian, você pode garantir isso executando os comandos abaixo:

sudo apt-get update
sudo apt-get install -y cron
sudo cron start

Agendar scripts R no Linux

Uma vez instalado, podemos começar a criar tarefas. Neste exemplo, criamos uma tarefa que é executada diariamente, iniciando às 9h.

library(cronR)

cmd 

To change the time, we just need to adjust the “at” parameter. The example below runs the same script automatically at 3:00 PM (15:00) each day.

cron_add(command = cmd, frequency = 'daily', at = "15:00" , id = 'test_linux_run', description = "testing linux scheduler")

O próximo exemplo executa a mesma tarefa a cada 30 minutos.

cron_add(command = cmd, frequency = '/30 * * * *', at = "15:00" , id = 'test_linux_run', description = "testing linux scheduler")

Passando argumentos para o cronR

A execução de um script R com argumentos de linha de comando é uma necessidade comum. Isso pode ser tratado com cronR usando o parâmetro “rscript_args” no diretório cron_rscript função.

cmd 

Running cron jobs on specific days of the week

It’s also possible to select what days of the week you want a job to run. For example, if we want a job to run hourly, but only on certain days of the week, we could specify that like below.

cron_add(command = cmd, frequency = 'hourly', at = "15:00" , id = 'test_linux_run', description = "testing linux scheduler",
         days_of_week = c(0,3))

Executando Tarefas Cron em Dias Específicos do Mês

Da mesma forma, também podemos selecionar os dias do mês em que os trabalhos serão executados.

cron_add(command = cmd, frequency = 'hourly', at = "15:00" , id = 'test_linux_run', description = "testing linux scheduler",
         days_of_month = c(10, 20, 30))

Listando todas as tarefas do Linux

cronR pode listar todos os trabalhos agendados do Linux usando o cron_ls função.

cron_ls()

Conclusão

Se você gostou deste post, compartilhe-o com outras pessoas ou siga meu blog no Twitter !. Confira este link para ver como executar o Python a partir do agendador de tarefas.

agendador de tarefas e cronR também pode ser utilizado com um suplemento RStudio. Aprender mais sobre agendador de tarefas aqui e cronR clicando aqui.

A postagem Como agendar scripts R apareceu primeiro no Open Source Automation.



Se você chegou até aqui, por que não inscreva-se para atualizações do site? Escolha o seu sabor: e-mail, twitter, RSS ou facebook ...



cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br
Leia Também  nimbleEcology: distribuições NIMBLE personalizadas para ecologistas