-
Notifications
You must be signed in to change notification settings - Fork 3
ABACUS Standalone Server
hsfzxjy edited this page Aug 15, 2017
·
4 revisions
系统依赖:
- Linux(需要跑任务队列)
- Redis
python 依赖安装:
$ pip install -r requirements/abacus-server.txt
自定义配置(将 abacus_server/config.json.example
复制成 abacus_server/config.json
):
{
"ABACUS_JAR_PATH": "指向 .jar 文件的绝对路径",
"REDIS_URI": "redis链接URL,格式为: redis://:<password>@host:port",
"ABACUS_DATABASE_PATH": "指向 dirLinux.txt 文件的绝对路径",
"STORAGE_ROOT": "用于储存上传文件的目录的绝对路径,默认为 /tmp/abacus/"
}
在 Biohub-Server
根目录下,执行 python -m abacus_server
即可启动服务器。两个可选参数:
-
--port <PORT>
:服务器端口号 -
--concurrency <CONCURRENCY>
:可以同时运行的任务数量
格式为 multipart/form-data
。POST 数据的 file
域为上传的文件。
-
callback
: 通知任务完成的回调 URL(必须带上域名)
格式为 JSON:
{
"task_id": "标记此次任务的 ID",
"status": "用于查询任务状态的URL,其实就是 /<task_id>/"
}
如:
{
"task_id": "f95ac75b-9391-49b9-959c-424e2d6e7e8a",
"status": "http://host.to.remote.server/f95ac75b-9391-49b9-959c-424e2d6e7e8a/"
}
查询状态。
格式为 JSON:
{
"status": "PENDING|SUCCESS|ERROR",
"result": "此域仅当 status 为 SUCCESS 时存在,为指向输出文件的 URL"
}
如:
{
"status": "PENDING"
}
{
"status": "SUCCESS",
"result": "http://host.to.remote.server/media/output/output1.pdb"
}
回调会在任务结束(成功/失败)时发生。回调 URL 会以 GET 的方式调用。
当任务成功时,回调有两个 GET 参数:
task_id
-
output
:指向输出文件的 URL
当任务失败时,回调有两个 GET 参数:
task_id
error=True
使用 Ctrl+C
可以关闭服务器,但若此时仍有 ABACUS 任务在运行,可能会使相关的 java 进程成为“孤儿进程”(Orphan Process)滞留在内存中,需手动将其杀掉。此问题正在解决中。