我需要一种脚本语言来描述非常复杂的工作流程。
需要暂停这些工作流程 每当需要用户输入时,和 在给出之后恢复(可能是 几个月后)。看起来像Stackless的可序列化延续将是一个不错的选择。
用户还需要能够进行编辑 工作流程本身。我不确定序列化的continuation如何处理底层代码更改。我想我可能需要保存Git版本哈希以及延续,并且只在需要状态的检查点“升级”延续。
我更喜欢Python语法 可读性是一个非常重要的优先事项, 和动态功能是关键。不过,我愿意接受建议。
我深入研究了Stackless和PyPy。 Stackless似乎没有提供沙盒的任何承诺,而PyPy似乎提供无堆栈和沙盒,但我找不到任何提及同时具有两者。
任何解决方案?如果那里有专家可以让我找到一个好的解决方案,我有一个paypal帐户,我愿意使用它。
答案 0 :(得分:2)
对于使用本机协同常规库的大多数语言,您的序列化要求将很困难。您可能需要以另一种方式实现协同例程以允许对象图序列化。
Lua有Pluto库,它可以持久化线程(协同例程):http://lua-users.org/wiki/PlutoLibrary
就沙箱中的“安全”执行而言,Lua是首选。您可以在单个应用程序中具有多个lua状态,零问题,并且它支持该语言中的协同例程。它还具有VM格式非常快的优点,在许多情况下luajit为competitive with Java JIT。