2016-09-06 196 views
0

我開發了一個閃亮的應用程序,首先必須運行SQL查詢需要大約5-10分鐘才能運行。之後的情節建設相當快。 我的想法是在shinyServer()之前每天運行一次查詢(使用invalidLater)。這很好。在服務器上永久運行閃亮的應用程序

現在我可以訪問一個閃亮的服務器。我可以保存我的應用程序~/ShinyApps/APPNAME/並通過http://SERVERNAME.com:3838/USER/APPNAME/訪問它。但是,如果我打開該應用程序,而在其他瀏覽器中未打開該應用程序,則需要5-10分鐘才能啓動。如果我打開它,同時它也在另一臺計算機上打開,它會快速啓動。

我沒有服務器的經驗,但我總結我的服務器只運行應用程序,只要有人正在訪問它。但在我的情況下,它應該永久運行,所以它始終快速啓動,並且可以每天更新一次數據(使用sql查詢)。

我擡頭看文檔,因爲我猜這是一些設置問題。

回答

0

爲了讓應用程序運行:

蠻力:你可以有一個服務器/計算機,有您的應用程序打開所有的時間,因此不會從閃亮的服務器內存下降的觀點。但那不會加載新的數據。

服務器設置:您可以將服務器的空閒時間設置爲較大的時間間隔,這意味着在將應用程序從內存中刪除之前,它會等待該時間間隔。這是在fx的shiny-server.conf文件中完成的。 app_idle_timeout 3600

要有每日更新:

的crontab: 建立一個crontab的工作在你的SSH客戶端FX。膩子: $ crontab -e命令

像這樣(閱讀更多:https://en.wikipedia.org/wiki/Cron):

00 00 * * * Rscript /Location/YourDailyScript.R 

YourDailyScript.R:

1. setwd(location) #remember that! 
2. [Your awesome 5 minute query] 
3. Save result as .csv or whatever. 

然後還要到App只需加載這一結果。

相關問題