涉及到写磁盘操作的算法语句,即 algo()
命令中使用了 write()
参数时,该算法语句将以后台任务的方式执行。后台任务的运行结果将在计算结束后保存在当前图集中,用户可以随时、自行查看任务的结果,直至该任务被清除。
不同状态的后台任务及支持的操作:
状态 | Code | show() |
stop() |
clear() |
---|---|---|---|---|
排队中,尚未执行 | pending | √ | √ | |
计算中 | computing | √ | √ | |
写入中 | writing | √ | ||
已终止 | stopped | √ | √ | |
已失败 | failed | √ | √ | |
已完成 | done | √ | √ |
关于算法中
write()
参数的使用请参阅图算法文档《Ultipa 图分析与图算法》-《算法的使用》。
查看后台任务
返回的表名:_task
返回的表头:id
|name
|params
|start
|egnineTime
|totalTime
|result
|status
(算法后台任务的 id、算法名称、算法参数、开始时间、引擎耗时(秒)、总耗时(秒)、算法结果、当前状态)
语法:
// 查看当前图集所有算法后台任务
show().task()
// 查看当前图集某个算法后台任务
show().task(<task_id>)
// 查看当前图集某种算法后台任务
show().task("<algo_name>", "*")
// 查看当前图集处于某种状态的算法后台任务
show().task("*", "<status>")
// 查看当前图集某种算法且处于某种状态的算法后台任务
show().task("<algo_name>", "<status>")
示例:查看 khop_all 的算法后台任务
show().task("khop_all", "*")
示例:查看正在计算中的算法后台任务
show().task("*", "computing")
终止后台任务
任务终止后不能恢复执行。
语法:
// 终止当前图集的状态为 computing 的所有算法后台任务
stop().task("*")
// 终止当前图集的状态为 computing 的某个算法后台任务
stop().task(<id>)
清除后台任务
清除一个任务意味着将该任务的所有信息从当前图集中删除。
语法:
// 清除当前图集状态不是 computing 或 writing 的所有算法后台任务
clear().task("*")
// 清除当前图集状态不是 computing 或 writing 的某个算法后台任务
clear().task(<id>)
// 清除当前图集状态不是 computing 或 writing 的某种算法的后台任务
clear().task("<algo_name>", "*")
// 清除当前图集处于某种状态(非 computing 或 writing)的后台任务
clear().task("*", "<status>")
// 清除当前图集某种算法的、处于某种状态(非 computing 或 writing)的后台任务
clear().task("<algo_name>", "<status>")
示例:清除所有算法后台任务
clear().task("*")
示例:清除 id 为 12 的算法后台任务
clear().task(12)
示例:清除 khop_all 的状态为 pending 的后台任务
clear().task("khop_all", "pending")