我试图在python中编写一个简单的任务管理器,用于在LSF集群中运行大量作业。我试图确定(在python脚本中)给定用户的正在运行的作业数量。在命令行中,这将来自命令bjobs
。
IBM makes available是LSF C API的python包装器。使用我在网上找到的C API副本中的one of their examples和some documentation,我已经能够拼凑出以下脚本。
from pythonlsf import lsf
lsf.lsb_init("test")
userArr = lsf.new_stringArray(1)
lsf.stringArray_setitem(userArr, 0, 'my_username')
intp_num_users = lsf.new_intp()
lsf.intp_assign(intp_num_users, 1)
user_info = lsf.lsb_userinfo(userArr,intp_num_users)
变量user_info
包含'numPEND'
,'numRESERVE'
,'numRUN'
和'numStartJobs'
属性,但所有这些都是0.即使{{{}} {1}}报告正在运行的作业。
任何人都可以在上面的代码段中告诉我可能做错了什么吗?我已多次阅读C和python文档,但无法找到错误。