使用httpuv
包,有没有办法在给定时间内重启服务器?
在那里,我作为一个可能的答案分享我的工作。
欢迎任何进一步的建议。
答案 0 :(得分:2)
经过一些试验和错误,这里有一个工作代码,每隔5秒重启一次服务器:
library(httpuv)
host <- '127.0.0.1'
port <- 8080
app <- list(
call = function(req) {
list(
status = 200L,
headers = list('Content-Type' = 'text/plain'),
body = 'Hello'
)
}
)
run <- function(host, port, app, period) {
sv <- startServer(host, port, app)
on.exit(stopServer(sv))
cat("Server started\n")
restart <- Sys.time() + period
while (TRUE) {
service()
Sys.sleep(0.001)
if (Sys.time() > restart) {
stopServer(sv)
sv <- startServer(host, port, app)
restart <- Sys.time() + period
cat("Server restarted\n")
}
}
}
run(host, port, app, 5)