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 等等来做进一步封装成你需要的东西。
|