我有一個相當大的反應數據集,它是通過輪詢文件,然後在預定義時間間隔內讀取該文件而得到的。數據經常更新並需要不斷重新加載。無可否認,重新加載可以逐步完成並附加到R中的現有對象,但不是。不過目前,這個動作是針對閃亮應用的每個用戶完成的,儘管數據在會話中是相同的。在Shiny中共享用戶會話之間的反應數據集
我想出了一個有關解決方案的唯一方法是確定會話是否是第一個,並讓該會話成爲通過輪詢更新數據的主數據。如果仍然存在master
,則後續會話不進行投票。
有沒有更簡單的方法來完成相同的結果,而無需處理這種主關係?
這幾乎就像是需要一個全局函數內部的被動調用來代表所有客戶/會話。
所有的好建議。能否在'shinyServer()'之外分配一個全局反應變量?我相信我曾嘗試過,但沒有成功。我會再次測試。這幾乎就像我需要在'shinyServer()'外面查詢/更新數據集並更新一個全局反應變量,因此當全局數據發生變化時,每個用戶的視圖都會更新。 – theGreatKatzul
你是對的,你不能在'shinyServer()'之外創建一個_reactive_變量,但你可以在全局R環境中創建一個變量,這個變量可以從任何函數和/或循環訪問,也可以在你的Shiny服務器和反應函數。更多關於R的環境在這裏:https://stat.ethz.ch/R-manual/R-devel/library/base/html/environment.html但我會先嚐試數據庫選項。爲什麼不按照我以前的建議創建一個數據庫MySQL或SQLite?這樣,應用程序將具有可擴展性,因爲數據幀不需要完全加載到應用程序中,也不會使用RAM –