【问题标题】:Scheduling with taskscheduleR setting environment variables使用 taskscheduleR 设置环境变量进行调度
【发布时间】:2020-02-22 17:19:51
【问题描述】:

在使用 taskscheduleR 调度任务时遇到一些问题。具体来说,我在安排任务时没有问题,但是,当我尝试设置环境变量时,代码将失败。

我尝试在计划任务开始时明确调用Sys.getenv() 无济于事。

我想我可以做类似的事情

out <- readLines("path to my .Renviorn")

但这似乎不是正确的方法。

当我传递完整参数而不是 Sys.getenv() 时,这是我想要安排的运行良好(即使已安排)的内容。

library(RODBC)
library(slackr)
library(tidyverse)

Sys.getenv()

dbhandle <- odbcDriverConnect(connection = Sys.getenv("CWDSN"))

proj <- sqlQuery(dbhandle, "SELECT * FROM v_rpt_Project WHERE Date_required > '2018'", 
stringsAsFactors = FALSE) %>% 
  as_tibble()

RODBC::odbcCloseAll()

slackr(proj, channel = "test-r-1", api_token = Sys.getenv("SLACK_API_TOKEN"))

write.csv("C:/Users/bill/Desktop/output.csv")

我想避免传递可能被推送到 github 的登录信息。

如果有其他方法,例如设置一个 .config 文件以从中提取登录信息,我对此持开放态度。有点只是在这里寻找最佳实践。

提前致谢。

我是这样安排的:

library(taskscheduleR)


taskscheduler_create(taskname = "DELETE-TEST", 
                     rscript = "C:/Users/bill/Desktop/simple-test.R", 
                     schedule = "MINUTE", 
                     startdate = "01/01/2019", 
                     modifier = 1)

taskscheduler_delete("DELETE-TEST")

sessionInfo()

R version 3.6.1 (2019-07-05)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 18362)

Matrix products: default

locale:
[1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United States.1252   
[3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C                          
[5] LC_TIME=English_United States.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
 [1] forcats_0.4.0   stringr_1.4.0   dplyr_0.8.3     purrr_0.3.2     readr_1.3.1     tidyr_0.8.3     tibble_2.1.3   
 [8] ggplot2_3.2.0   tidyverse_1.2.1 slackr_1.4.2    RODBC_1.3-16   

loaded via a namespace (and not attached):
 [1] Rcpp_1.0.2       cellranger_1.1.0 pillar_1.4.2     compiler_3.6.1   tools_3.6.1      zeallot_0.1.0   
 [7] jsonlite_1.6     lubridate_1.7.4  gtable_0.3.0     nlme_3.1-140     lattice_0.20-38  pkgconfig_2.0.3 
[13] rlang_0.4.0      cli_1.1.0        rstudioapi_0.10  curl_4.2         haven_2.1.1      withr_2.1.2     
[19] xml2_1.2.0       httr_1.4.1       generics_0.0.2   vctrs_0.2.0      hms_0.5.0        grid_3.6.1      
[25] tidyselect_0.2.5 glue_1.3.1       R6_2.4.0         fansi_0.4.0      readxl_1.3.1     modelr_0.1.4    
[31] magrittr_1.5     scales_1.0.0     backports_1.1.5  rvest_0.3.4      assertthat_0.2.1 colorspace_1.4-1
[37] utf8_1.1.4       stringi_1.4.3    lazyeval_0.2.2   munsell_0.5.0    broom_0.5.2      crayon_1.3.4    

【问题讨论】:

    标签: r taskscheduler


    【解决方案1】:

    当然有readRenviorn() 函数。

    readRenviron("path to environment variables")

    Sys.getenv("access token")

    现在可以在不调用敏感信息的情况下安排任务。

    信用: https://stackoverflow.com/a/56262739/8364971

    【讨论】:

      猜你喜欢
      • 2023-01-24
      • 2016-08-11
      • 2018-10-22
      • 2012-09-02
      • 2013-01-11
      • 2013-03-04
      • 2015-10-21
      • 2018-08-28
      相关资源
      最近更新 更多