我有一个Shiny应用程序,它使用两个mysql查询来检索数据,从RStudio运行时应用程序运行良好。 (其中一个查询大约需要8分钟)
但是当我在Shiny Server上移动它并访问http://ip/myapp/时,它正在加载一段时间的页面,我得到public loadIntervention( numFI : number ) : Promise<Intervention>
{
let scriptLoadedPromise : Promise<Intervention> = new Promise( ( resolve, reject ) =>
{
// si le script est chargé alors la promesse est déjà tenue
if ( this.isScriptLoaded )
resolve();
else
this.scriptLoaded = ( () => { resolve(); } ) ;
}).then
( () => {
let connectionPromise : Promise<Intervention> = new Promise( (resolve, reject) =>
{
// si le serveur est connecté alors la promesse de connection est déjà tenue
if ( this.Connected )
resolve();
else
this.connectionDetected = ( () => { console.log("RECONNETED !!!!!"); resolve(); } );
} )
.then( () => { return this.proxy.server.getIntervention( numFI ); } );
return connectionPromise;
});
return scriptLoadedPromise;
}
。
我认为这是因为长查询。当需要从Shiny应用程序进行长时间查询时,是否有一些处理这种情况的好方法?
- (从RStudio本地运行"Problem loading page"
,工作正常)
有关该应用的信息:
位置:/ srv / shiny-server / myapp
文件名:app.r
文件结构:
- 加载库
库(有光泽)
...
- 连接和查询
app.R
- 服务器代码
con <- dbConnect(MySQL(),
user = '#',
password = '#',
host = '#',
dbname='#')
tickets<-dbGetQuery(con, "Select * from table")
dbDisconnect (con)
con <- dbConnect(MySQL(),
user = '#',
password = '#',
host = '#',
dbname='#')
-- long query
issues_speed_unique<-unique(na.omit(dbGetQuery(con,"Select * from table2")))
dbDisconnect (con)
some aggregations....
- ui code
shinyServer(
function(input,output){
...