cronR 定时任务

作者: Liam_ml | 来源:发表于2018-10-25 22:48 被阅读12次

    功能

    使用cron调度程序调度R脚本/进程。这允许在Unix / Linux上工作的R用户在R本身的特定时间点自动化R进程

    基本用法

    • 获取预定作业列表
    • 删除预定作业
    • 添加一份工作
    • 作业基本上是一个带有R代码的脚本,它通过Rscript运行
    • 可以安排任务'一夜','每一分钟','每一小时','每一天','每周','每个月'或任何复杂的时间表

    任务日志包含在该时间点上运行的Rscript的stdout和stderr。可以在与R脚本相同的文件夹中找到此日志

    安装

    因为我用的是mac,所以在这里介绍在Linux / Unix上如何使用

    1. 下载cron
      Linux 使用在终端下载
    sudo apt-get update
    sudo apt-get install -y cron
    sudo cron start
    

    Mac 使用

    brew install cron
    su do cron start
    
    1. 从github下载最新版本
      devtools::install_github("bnosac/cronR")

    2. 安装UI工具

    install.packages('miniUI')
    install.packages('shiny')
    install.packages('shinyFiles')
    
    

    使用cron

    image.png image.png

    上传你的脚本,然后你就可以将你的任务设置为定时任务了。

    代码的形式

    library(cronR) # 加载包
    f <- system.file(package = "cronR", "extdata", "helloworld.R") # 文本文件
    cmd <- cron_rscript(f) # 将文件设置为定时任务
    cmd # 查看定时任务
    
    cron_add(command = cmd, frequency = 'minutely', id = 'test1', description = 'My process 1', tags = c('lab', 'xyz'))
    # 定义时间 每分钟
    cron_add(command = cmd, frequency = 'daily', at='7AM', id = 'test2') # 每天7点
    cron_njobs() # 查看cron
    
    
    cron_ls()
    cron_clear(ask=FALSE)
    cron_ls()
    
    cmd <- cron_rscript(f, rscript_args = c("productx", "arg2", "123"))
    cmd
    cron_add(cmd, frequency = 'minutely', id = 'job1', description = 'Customers')
    cron_add(cmd, frequency = 'hourly', id = 'job2', description = 'Weather')
    cron_add(cmd, frequency = 'hourly', id = 'job3', days_of_week = c(1, 2))
    cron_add(cmd, frequency = 'hourly', id = 'job4', at = '00:20', days_of_week = c(1, 2))
    cron_add(cmd, frequency = 'daily', id = 'job5', at = '14:20')
    cron_add(cmd, frequency = 'daily', id = 'job6', at = '14:20', days_of_week = c(0, 3, 5))
    cron_add(cmd, frequency = 'daily', id = 'job7', at = '23:59', days_of_month = c(1, 30))
    cron_add(cmd, frequency = 'monthly', id = 'job8', at = '10:30', days_of_month = 'first', days_of_week = '*')
    cron_add(cmd, frequency = '@reboot', id = 'job9', description = 'Good morning')
    cron_add(cmd, frequency = '*/15 * * * *', id = 'job10', description = 'Every 15 min')   
    cron_ls() # 查看所有的定时任务
    cron_clear(ask=FALSE) # 删除所有的定时任务
    
    
    

    相关文章

      网友评论

        本文标题:cronR 定时任务

        本文链接:https://www.haomeiwen.com/subject/cvdhtqtx.html