ecFlow学习笔记02.2.6 —— 加载文件
该教程的最新版已发布在GitHub上,请访问ecflow-tutorial-cn
这是 ecFlow 教程的一部分,完整教程请参看《ecFlow学习笔记02 —— 教程》
- *下一步就是让 ecflow_server 知道你的 suite,或者称为加载 suite definition 文件。这一步将检查 test.def 文件,并向 ecflow_server 描述 suite。可以通过多种方法实现,取决于 suite 的创建方式。
注意:从下面的两种方法中选择一种方法,避免两次加载 suite definition 时会出现的错误。
文本
在 course 目录执行下面的命令
这将检查并加载 suite definition 到 ecflow_server。如果检查失败,suite 不会被加载。之前的章节中提到过 ecflow_client,该命令被用在 head.h 和 tail.h 头文件中。
注:请确保已经设置 ECF_PORT 环境变量,否则需要在命令行中使用 –port <port_number> 加载 suite 后的 ecflowview
windroc 注:
为了测试另一种方式,需要反向加载 suite,使用 ecflow_client –delete 命令:
Python
使用 Python 脚本将 defs 写为 .def 定义文件,在 suite 定义比较复杂的时候对调试很有帮助。
如果调用 defs.save_as_defs(),则会生成 test.def 文件。
运行上述脚本后,生成的 def 文件内容如下:
可以使用上面的方法通过命令行接口加载 def 文件。
因为 Suite Definition API 在内存中建立 definition,所以可以直接加载到 ecflow_server 中,用 ecflow.Client 类实现。
在之前的 test.py 文件结尾添加如下代码:
测试
强烈建议创建 suite definition 和将它加载到服务器的过程分开。加载过程应该放到一个文件中,例如下面的 client.py 文件。
测试结果:
如果一切顺利,server中应该有 suite 的定义。查看 ecflow_server 的日志文件:
任务
- 加载定义文件。从上述两种方法中选择一种。
- 如果使用python方式,检查test.def 并创建 client.py
- 查看日志文件
如果遇到重复加载两次 suite 的错误,可以删掉服务器中的 suite
然后 definition 可以被重新加载。
或者使用 replace 替换 suite,请查看相关帮助
简要说明