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 的日志文件:

任务

  1. 加载定义文件。从上述两种方法中选择一种。
  2. 如果使用python方式,检查test.def 并创建 client.py
  3. 查看日志文件

如果遇到重复加载两次 suite 的错误,可以删掉服务器中的 suite

然后 definition 可以被重新加载。
或者使用 replace 替换 suite,请查看相关帮助

简要说明