1 jimzhong 2017-03-11 22:14:08 +08:00 我也想知道是否有。 |
2 leeg810312 2017-03-11 23:10:39 +08:00 via Android 我理解正确的话, lz 是要一个工作流引擎,可以监控每个流程节点的状态,控制流程的流转,自然也能保存每一次流程执行的情况 |
3 tramedy 2017-03-11 23:33:34 +08:00 我司内部是用有些业务使用 Rule Engine 来实现类似的规则,还有些地方也用到了 RxJava 中的 Observable 等 可以看看 |
![]() | 4 akira 2017-03-12 01:19:33 +08:00 看看状态机的东西符合你需求不 |
5 wohenyingyu02 2017-03-12 01:39:01 +08:00 扫了一眼标题就看到“性工作”三个字是不是撸多了 |
![]() | 6 coderfox OP @jimzhong @leeg810312 @tramedy @akira 谢谢! 看了一下,这些和需求都不太接近,但可以参考,决定还是自己造轮子了。 主要是流程上没法实现语义化,只能简单地 continue ,做 SDK 的话不太友好。 例如: Workflow reg = client.getRegWorkflow(); reg.setNickname("sth"); var tos = reg.getTos("sth"); if( tos ...... ) reg.acceptTos(reg.getResult(reg.steps.GET_TOS).tosId); 如果这些技术能的话,还望不吝赐教。 |
7 owt5008137 2017-03-12 14:55:16 +08:00 via Android 你说的是 Task ? |
![]() | 8 coderfox OP @owt5008137 我需要把这种关系描述好,返回给调用 SDK 的程序,并且需要语义和非异步支持。 现在看到的解决方案似乎都是针对应用程序而非类库的。 我觉得似乎 Task 并不能满足我的需求。如能应用,望不吝赐教。 |
9 owt5008137 2017-03-12 16:48:55 +08:00 via Android @coderfox 按我的理解,上面的三个步骤应该就是 3 个 Task 连起来呀 |
![]() | 10 coderfox OP @owt5008137 过程中还需要用户输入,所以不能把 Task 连起来返回。 |
11 owt5008137 2017-03-12 22:06:23 +08:00 via Android @coderfox 需要输入的时候不能挂起 Task 然后等结束了再恢复么。本来 Task 也不是为同步行为设计的 |
![]() | 12 coderfox OP @owt5008137 在这个过程里还能传递参数进去? |
13 leeg810312 2017-03-13 01:17:02 +08:00 via Android 有用户输入的流程控制我觉得需要用专门的工作流引擎,至于语意处理,可以引入类似 lua 的嵌入式脚本,或自己实现一个简单的脚本解析器,包装为 sdk ,供程序调用控制流程 |
14 owt5008137 2017-03-13 08:11:58 +08:00 via Android |
![]() | 15 coderfox OP |
16 noli 2017-03-20 12:27:09 +08:00 需求说得不够明确。虽然你认为不是 Task ,但根据我的理解,你需要的只是一个能够把 continuation 按照顺序执行的方式写出来的库。就算不是 Task 那也是跟他很相近的东西。可以考虑基于,如果 C++用 boost::coroutine ,如果 C# 用 Task 等等来做进一步封装成你需要的东西。 |