J'ai écrit un script R qui extrait certaines données d'une base de données, effectue plusieurs opérations dessus et publie la sortie dans une nouvelle base de données.
J'aimerais que ce script s'exécute tous les jours à une heure précise, mais je ne trouve aucun moyen de le faire efficacement.
Quelqu'un peut-il recommander une ressource que je pourrais consulter pour résoudre ce problème? J'exécute ce script sur une machine Windows.
.R
et NON.r
.En supposant que votre script R se
mytest.r
trouve dansD:\mydocuments\
, vous pouvez créer un fichier de commandes comprenant la commande suivante:Ensuite, ajoutez-le, en tant que nouvelle tâche, au planificateur de tâches Windows, en y définissant les conditions de déclenchement.
Vous pouvez également omettre le fichier de commandes. Définissez
C:\R\R-2.10.1\bin\Rcmd.exe
dans laprogram/script
zone de texte du planificateur de tâches et donnez commeArguments
reste de la commande initiale:BATCH D:\mydocuments\mytest.r
Planification des tâches R via le planificateur de tâches Windows (Publié le 11 février 2015)
taskscheduleR: package R pour planifier des scripts R avec le gestionnaire de tâches Windows (Publié le 17 mars 2016)
ÉDITER
J'ai récemment adopté à nouveau l'utilisation de fichiers batch, car je voulais que la fenêtre cmd soit minimisée (je ne pouvais pas trouver d'autre moyen).
Plus précisément, je remplis l'
Actions
onglet du planificateur de tâches Windows comme suit:Program/script:
cmd.exe
Add arguments (optional):
/ c start / min D: \ mydocuments \ mytest.bat ^ & exit
Contenu de mytest.bat :
C: \ R \ R-3.5.2 \ bin \ x64 \ Rscript.exe D: \ mydocuments \ mytest.r params
la source
Rscript
est préférable àR BATCH
. Les systèmes qui peuvent faire la différence entre les minuscules et les majuscules obtiennentr
également.Maintenant, il existe une option intégrée dans RStudio pour ce faire, pour exécuter la première installation du planificateur ci-dessous les packages
Après l'installation, accédez à
la source
Je configure mes tâches via le
SCHTASKS
programme. Pour exécuter des scripts au démarrage, vous écririez quelque chose du genreConsultez ce site Web pour plus de détails sur
SCHTASKS
. Plus de détails sur le site Web de Microsoft .la source
Vous pouvez utiliser le planificateur de tâches Windows .
la source
Configuration du planificateur de tâches
Étape 1) Ouvrez le planificateur de tâches (Démarrer> Rechercher le planificateur de tâches)
Étape 2) Cliquez sur "Action"> "Créer une tâche"
Étape 3) Sélectionnez "Exécuter uniquement lorsque l'utilisateur est connecté", décochez "Exécuter avec les privilèges les plus élevés", nommez votre tâche, configurez pour "Windows Vista / Windows Server 2008"
Étape 4) Sous l'onglet "Déclencheurs", définissez quand vous souhaitez que le script s'exécute
Étape 5) Sous l'onglet "Actions", mettez l'emplacement complet du fichier Rscript.exe, c'est-à-dire
Mettez le nom de votre script avec
-e
etsource()
dans des arguments en l'enveloppant comme ceci:Dépannage d'un Rscript planifié dans le planificateur de tâches
Lorsque vous exécutez un script à l'aide du planificateur de tâches, il est difficile de résoudre les problèmes car vous ne recevez aucun message d'erreur.
Cela peut être résolu en utilisant la
sink()
fonction dans R qui vous permettra de sortir tous les messages d'erreur dans un fichier que vous spécifiez. Voici comment procéder:L'autre chose que vous devrez modifier pour que votre Rscript fonctionne est de spécifier le chemin complet du fichier de tous les chemins de fichier dans votre script.
Cela ne fonctionnera pas dans le planificateur de tâches:
Vous devrez spécifier le chemin d'accès complet du fichier de tous les scripts que vous recherchez dans votre Rscript:
la source
Après avoir suivi une combinaison de ces étapes et que vous recevez l'
"Argument Batch Ignored"
erreur après l'exécution de R.exe, essayez ceci, cela a fonctionné pour moi.Dans le planificateur de tâches Windows:
Remplacer
BATCH "C:\Users\desktop\yourscript.R"
dans le champ des argumentsavec
CMD BATCH --vanilla --slave "C:\Users\desktop\yourscript.R"
la source