GoO Engine新坑开坑记 1
如题
简介
项目地址: GitHub
一个简单的Lua/Python
脚本执行引擎.
期望的特性
- 能够通过
manager
轻松管理包依赖; - 提供一个简便的执行脚本的方法, 并使用一个队列来处理脚本与对应的数据;
- 能够方便的与宿主进行数据交互与线程管理, 保证线程安全, 也提供随时启动/终止线程的方法;
- 通过解释器提供的
traceback
信息尝试修复一些常见小错误并重新尝试执行脚本, 以此来提供容错功能; - 如果有可能的话希望提供一句话编程语言的能力, 方便在比赛中快速的进行数据处理, 同时又不像
lambda
语言那样晦涩难懂;
灵感来源
名称灵感来源于World Of Goo
信息高速公路章节的容错系统, 以及MuseDash
中的Rabot 233
. 被容错设计彻底惊到了. 虽然容错是一个很基本的设计, 但是之前写软件的时候从来没有考虑到过为用户容错.
同时, 放弃ICTFE 1.0
其中的一个原因是1.0
版本使用Python
编写, 性能很低. 第二个原因是Python
的多进程管理很残废, 无法保存进程对象, 也就没有办法对正在执行的进程进行操作. 线程管理很完善, 但是Python
的线程受到GIL
限制, 只能利用单核, 后台一旦进入密集计算状态, UI
就能卡出屎来.
第三个原因就是编写本引擎的原因. 数据流处理器模块我当时写了快两个星期才正式完工, 测试了许多次没有发现bug
. 但代码的复杂导致我根本不想去维护, 逻辑和UI
穿插在一起挤的一团糟.
于是希望能够实现本引擎, 并提供易于使用的接口与安全的多线程计算保证, 作为ISAE
数据流处理器的后端引擎使用. 这样维护成本和调试bug
的难度应该都会下降. 同时单独实现本引擎, 也可以为以后的项目提供一个稳定的脚本嵌入方案.
- 本文标题:GoO Engine新坑开坑记 1
- 本文作者:Reverier Xu
- 本文链接:https://www.wootec.top/2020/08/25/GoOEngine_1/
- 版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!