我有一个React
托管在DigitalOcean
( Ubuntu 16.04
) 上的网络应用程序。R
该应用程序在后端 ( ) 上有一个脚本,node
由shelljs
( shCMD
command 调用R
脚本。它永远不会进入 exec 回调):
exec_full_analysis = shell.exec(shCMD, function(code, stdout, stderr) {
if (code === 0) {
console.log('Program output:', stdout);
pdfService.drawChartsPDF(typeArr, analysisId, datasetArr, pairArr, filterArr);
console.log('sendStatus 200')
res.sendStatus(200);
} else {
console.log('Program stderr:', stderr);
//res.sendStatus(500);
}
});
我foreverjs
用来启动服务器。它在一个conda
环境中运行。因此,当脚本最初开始运行时,我会看到正确的日志输出(R
脚本正在运行),它foreverjs
为我提供了但很快就会停止生成日志输出。forever
浏览器和日志输出中都没有错误。服务器到达我的R
脚本中的某个阶段并且以某种方式卡住了。有没有办法弄清楚出了什么问题?你会推荐什么?在本地,一切正常。唯一可能不同的是conda
环境,但我希望它会给出错误但没有。
更新
我调查了/var/log/syslog
但我没有看到任何OOM
错误:https ://www.digitalocean.com/community/questions/python-script-gets-killed
更新
这不是问题:在脚本的同一位置foreverjs
运行简单的卡住。node server.js
R
脚本卡在Seurat
- 包函数中ScaleData
:
seurat_object <- ScaleData(object = seurat_object, vars.to.regress = c("nUMI"))
具有以下输出:
ScaleData 在非标准化值上运行。推荐的工作流程是首先运行 NormalizeData。回归:nUMI | | 0%
但是,当然,它在本地运行良好。并且在服务器上它卡在第二for
次循环迭代中,所以一次它在服务器上运行得很好,但第二次它失败了,就好像运行一个进程设置的时间有限一样DigitalOcean
。
更新
服务器是apache2
。我切换到nginx
现在服务器运行正常,它没有卡住,问题几乎解决了,只是现在我收到504
网关超时错误。