R 水管工,如何在运行中添加停止/退出条件?

R 水管工,如何在运行中添加停止/退出条件?,r,plumber,R,Plumber,我有一个小API,如果达到一天中的某个特定时间,比如说午夜,我需要停止运行,然后继续程序的其余部分。和一个请求的电话无关。因为可以包含一个函数,该函数通过检查Sy.time()来中断进程,但只有在请求通过时才会执行。 我的猜测是,我必须修改$run的某些属性,但在互联网上找不到太多关于它的内容。 我知道可以通过系统命令获取pid并杀死它,但我不知道该解决方案是否确保程序的其余部分运行 有人有主意吗 提前谢谢 包含函数的文件如下所示: (my_file.R) #*@param x我的参数 #*@g

我有一个小API,如果达到一天中的某个特定时间,比如说午夜,我需要停止运行,然后继续程序的其余部分。和一个请求的电话无关。因为可以包含一个函数,该函数通过检查Sy.time()来中断进程,但只有在请求通过时才会执行。 我的猜测是,我必须修改$run的某些属性,但在互联网上找不到太多关于它的内容。 我知道可以通过系统命令获取pid并杀死它,但我不知道该解决方案是否确保程序的其余部分运行

有人有主意吗

提前谢谢

包含函数的文件如下所示: (my_file.R)

#*@param x我的参数
#*@get/lag\u领先
功能(x){

一种方法是使用
withTimeout
设置超时,它是
setTimeLimit

library(R-utils)
withTimeout(mon_api$run(port = 8000), timeout = 30)
# timeout is in seconds

# calculate timeout, using difftime between now and midnight
tmo <- as.numeric(difftime(as.POSIXct("2018-12-28 00:00:00"), Sys.time(), units = "secs"))
withTimeout(mon_api$run(port = 8000), timeout = tmo)
库(R-utils)
withTimeout(mon_api$run(端口=8000),超时=30)
#超时时间以秒为单位
#使用现在和午夜之间的difftime计算超时

tmo您好,非常感谢,这是我一直在寻找的IBG,但是我使用的R服务器上没有该库!我将尝试模仿该功能。再次感谢
library(plumber)
mon_api <- plumb('my_file.R')
mon_api$run(port = 8000)
print('hello')
library(R-utils)
withTimeout(mon_api$run(port = 8000), timeout = 30)
# timeout is in seconds

# calculate timeout, using difftime between now and midnight
tmo <- as.numeric(difftime(as.POSIXct("2018-12-28 00:00:00"), Sys.time(), units = "secs"))
withTimeout(mon_api$run(port = 8000), timeout = tmo)