精華區beta R_Language 關於我們 聯絡資訊
分享自己寫的shiny app 主題是海洋浮游動物的生態資料庫查詢 在這就不介紹生態上的議題,主要分享技術上心得可供參考 http://bio.odb.ntu.edu.tw/query/ 資料連結部分... shiny-server 和 PostgresSQL資料庫可架在不同server,在UI 完成篩選條件後, 抓資料的function寫成內部使用的package,經由Opencpu API 去抓使用者要的資料, 抓完即斷掉和資料庫連結。 Opencpu API作法參考 https://www.opencpu.org/posts/scoring-engine/ Opencpu server可在Apache 和 Nginx屏蔽成內網使用。用此做法在shiny-server session中,不需要持續和資料庫保持連結。 Async... 另一個好處是預先要抓的資料,可以丟進 future::future() (以及其他讀外部檔等工作) 讓shiny-server繼續完成其他UI要做的事,等到需要render資料時才用future::value() 叫用出來。這樣減少一些lag.. 順提,前日在Hadley twitter讀到他介紹 RPostgres 相對於RPostgresql這個 目前使用的package的優勢,包括會自動清除佚失的連結,與query速度較快。之後應該會 改用看看~~ https://github.com/r-dbi/RPostgres Loading... 網頁一開始會慢的一部分原因都在掛載的javascript and css,這在nginx中若設 js | css 的cache, 網站都會出錯。但可以把這些倚賴的資源放在CDN上, 參考做法:https://goo.gl/fum9Ji 可以看到重複連結網站時,掛載在CDN上的resource都是取用被cache的,速度就會提升。 其實遇到很多問題,都靠孤狗大神一個個解決。我列了我使用到的package在這,其他有 機會再續談。 http://bio.odb.ntu.edu.tw/index_tech_citations.html 以上做法可能都有其他更好、更快的方式,目前這樣做僅供參考,也歡迎討論。 (如果您有使用此網站,使用經驗上好或不好的地方,或有其他細節要聯絡, 敬請告知或透過網頁上email聯絡。) [關鍵字]: Shiny-server, API, Database -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.65.48 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1515652042.A.479.html
Godkin: 01/11 16:15