配管パッケージを使用して柔軟な並列処理を行いたいと思います。ノンブロッキングであるようにnode.jsフレームワーク内で動作することを期待していました...node.js並列処理用R配管パッケージ
私は次の配管用ファイルを持っています。私も
#!/bin/bash
R -e "library(plumber); pr <- plumb('myfile.R'); pr\$run(port=4000)"
すなわち、同じrun-myfile.sh
ファイルを作り、それが実行可能な提案として行ったhttp://plumber.trestletech.com/docs/hosting/
ここで提案されているよう
# myfile.R
#* @get /mean
normalMean <- function(samples=10){
Sys.sleep(5)
data <- rnorm(samples)
mean(data)
}
私も...
IをPM2をインストールしていますpm2を使用して起動しました
pm2 start /path/to/run-myfile.sh
と、それは別のRコンソールを開き、以下のコマンドを実行して、非ブロックnode.js
フレームワーク...
を実行できるかどうかをテストしたかった...
foo <- function(){
con <- curl::curl('http://localhost:4000/mean?samples=10000',handle = curl::new_handle())
on.exit(close(con))
return(readLines(con, n = 1, ok = FALSE, warn = FALSE))
}
system.time(for (i in seq(5)){
print(foo())
})
おそらくそれは、 node.js
ノンブロッキングフレームワークがどのように機能するのか分かりませんが、私の頭の中で最後のループは5秒以上しかかかりません。しかし、それは25秒かかると思われ、すべてが並行ではなく連続的であることを示唆している。
ノンブロッキングの性質を実行するために配管工パッケージを使用するにはどうすればよいですか?
については、以下の記事を参照してください。https://github.com/trestletech/plumber/issues/31 –