- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个托管在 DigitalOcean
(Ubuntu 16.04
) 上的 React
Web 应用。该应用程序在后端 (node
) 上有一个由 shelljs
调用的 R
脚本(shCMD
命令调用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
环境中运行。因此,当脚本最初开始运行时,我看到 foreverjs
为我提供的正确日志输出(R
脚本正在运行),但很快日志输出就停止生成。浏览器中和 forever
日志输出中均不存在错误。服务器在我的 R 脚本中到达某个阶段并不知何故卡住了。有没有办法找出到底出了什么问题?你会推荐什么?本地一切都工作得很好。唯一可能不同的是 conda
环境,但我希望它会给出错误,但实际上没有。
Update
我查看了 /var/log/syslog
但没有看到 OOM
错误: https://www.digitalocean.com/community/questions/python-script-gets-killed
Update
这不是 foreverjs
的问题:运行简单的 node server.js
卡在 R
脚本中的同一位置。
脚本卡在Seurat
- 包函数ScaleData
中:
seurat_object <- ScaleData(object = seurat_object, vars.to.regress = c("nUMI"))
输出如下:
ScaleData is running on non-normalized values. Recommended workflow is to run NormalizeData first. Regressing out: nUMI | | 0%
但是,当然,它在本地运行良好。在服务器上,它陷入了第二次 for 循环迭代,因此一次它在服务器上运行得很好,但第二次它失败了,就好像运行进程的时间有限一样设置为 DigitalOcean
。
Update
服务器是apache2
。我切换到 nginx
,现在服务器运行良好,它没有卡住,问题几乎已经解决,只是现在我收到 504
网关超时错误。
最佳答案
所以,我不知道为什么,但这是 apache2
服务器问题。我切换到 nginx
,但随后出现 RAM
内存不足错误,我通过减少 R
脚本使用的内存量修复了该错误:
options(java.parameters = "-Xmx6000m")
这是-Xmx8000m
。然后脚本在服务器上正确完成,但在客户端上我看到 504
网关超时错误,我通过在这里找到的解决方案修复了该错误:https://asdqwe.net/blog/solutions-504-gateway-timeout-nginx/
刚刚在 /etc/nginx/conf.d/timeout.conf
创建文件:
proxy_connect_timeout 3000;
proxy_send_timeout 3000;
proxy_read_timeout 3000;
send_timeout 3000;
之后它终于开始工作了
关于r - shelljs 执行在 DigitalOcean 上卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55409558/
因此,我正在处理 Windows 上的一个问题,即我无法终止使用 shell.exec(...) 生成的进程。 我正在创建这样的流程: const shell = require('shelljs')
假设我做了类似的事情: shelljs.exec('someLongrunningCommand', {async: true}) 如何在同一个脚本中发送 SIGINT 或以其他方式取消此过程? 最佳
Shelljs exec 命令不带变量。我尝试了所有可能的组合,例如使用双引号、单引号、在变量前面分配 $ 等。下面是脚本: #!/usr/bin/env node require('shelljs'
我一直在使用shelljs 在我的超快系统上,我执行以下操作: var shell = require('shelljs') const exec = require('child_process')
如果您在 Linux 终端中运行此命令: mkdir -p ./dist/{articles,scripts,stylesheets} 它将创建以下文件夹树(在当前目录中): dist |- arti
当我从 Visual Studio 2015 运行 Apache Cordova 项目时出现错误,如下所示。 Error BLD401 Error : BLD00401 : Could not
我有以下 .sh 文件 // ping.sh 01: port="$1" 02: echo "pinging http://localhost:$port/ping" 03: 04: retry=0
我有一个托管在 DigitalOcean (Ubuntu 16.04) 上的 React Web 应用。该应用程序在后端 (node) 上有一个由 shelljs 调用的 R 脚本(shCMD 命令调
我正在尝试使用 shelljs 在 Node 中设置一个环境变量 伪代码如下: const shell = require('shelljs'); shell.exec('export MM=2');
我正尝试在 nwjs 中使用 shelljs 执行一个简单的命令,如下所示: 主要.js : var shell = require("shelljs"); var output = shell.ex
我目前正在尝试制作一个简单的命令行 Node 程序,让我可以轻松地为我制作的许多 React/Redux 应用程序创建样板。我正在使用 ShellJS执行控制台命令(我也尝试使用 Node's chi
当我构建 android 平台时,我收到错误消息,指出未找到 shelljs 模块,但该模块已全局安装。 事实上,android 平台得到了构建,我可以从 Android Studio 运行该项目,但
更新:我在写入文件后添加了一个短暂的暂停,然后 shell 命令才起作用。 async function testRun() { await createInsertCurlReq.creat
我正在使用 shellJs 和 Node WebKit 在 Android 平板电脑上工作。我想做的是使用 shelljs 来 Fastboot 读取引导加载程序变量(产品)。但在 Fastboot
在 nodejs 脚本中,我有以下代码同步调用并从我调用的 shell 脚本返回标准输出: var sh = require('shelljs'); ... some code var output
我有一个使用 shelljs 挑选提交的脚本。 这是我的 LOC,它使用 shelljs 进行挑选。 shell.exec('git cherry-pick commitid -X theirs');
运行 sh.exec('whoami') 时,我尝试比较标准输出,但它不起作用。 我想要做的是,运行 whoami 命令后,如果结果变成特定用户,那么我想触发一个操作。 运行时, sh.exec('w
我试图在我的核心 React 组件中要求 shelljs。 import React, { Component } from 'react'; import {render} from 'react-
如果我执行 shell.exec('http'),我会得到 httpie 的帮助,这是我使用的一个请求库。但是,如果我添加一个参数,如下所示,shelljs 永远不会调用回调。 var shell =
我正在尝试编写一个需要克隆 git 存储库的相当简单的 nodejs 程序。 var shell = require('shelljs'); shell.exec('git clone http://
我是一名优秀的程序员,十分优秀!