比如用户点击一个按钮,以下事件顺序发生: 上面的4个步骤都包含在一个进程里面,现在想要把数据库的保存部分做成异步保存。 这样做是否有意义呢?问题是 在一个同步的进程里,可否包含异步调用? |
|
10分 |
可以异步进行
调用webservice返回值->进行展现 ↓ 保存到数据库 |
10分 |
从第一步就可以异步。当然,如果第一步是异步的,那么第二步相对于“用户点击一个按钮”的事件处理也就是异步执行的了。
|
10分 |
异步处理有各种原因,通常是通过改变流程来极大地改善系统服务性能、提高时间利用率、减小排队压力、降低维护成本、灵活扩展服务器、永不宕机等等。 举个生活中的例子,如果你去医院的药房取药,你把药方给它们之后,你可以等也可以不等,反正一会儿还会叫号、你也可以看到叫号的通知。这就是一种异步设计。虽然工作人员仍然是原来的工作节奏,但是在药房窗口外边的人则是轻松多了。 至于说进程中“可否包含异步调用”,在于程序设计师的知识水平,而不在于你的操作系统或者编程工具。 |
10分 |
按你的业务流程,每不都是在上一步的基础上完成的
同步就是顺序执行,前一步没结束就不做下一步 异步就是在一系列的回调函数中完成每一步 所以到达第 3 步都是一样的 既然业务要求不能抢先,那么异步也是同步 |
多谢大家的回复。
我不是说步骤1,2,3,4 做成异步 (他们必须是顺序的); 而且针对每一个小步骤里面的调用做成异步。 |
|
我不是说步骤1,2,3,4 做成异步 (他们必须是顺序的); 而且针对每一个小步骤里面的调用做成异步。
我说的是第四步保存数据,如果做成对数据库本身的异步访问是不是有好处? |
|
如果不理解逻辑推理方面的讨论,那么就掷筛子,3个面写上“有好处”,3个面写上“没好处”,然后扔出去。
|
|
这个办法不错,可以研究一下,呵呵。
我的想法是,第四部(最后一步),如果是同步调用数据库的插入,那么必须等待这个进程结束,才是真正的结束。 |