关于异步任务的设计探索

这是一个客户签约的业务,流程如下:

  1. 开票员给客户开通代收的业务,并且与客户签约(即签订代收协议);
  2. 主管审核客户的签约业务,若拒绝,则开票人需要通知客户修改资料重新提交;
  3. 若同意,则签约成功,流程结束。

一、曾犯的错误

自己分析了一下之前的错误,发现虽然分析了整体的业务流程、角色的权限与上下游,但没有去分析这个任务是同步还是异步的,导致与开发同学也吵了很久,错误分析如下:

  1. 提交后没有告诉发起人(即开票员)整体的流程,导致很多发起人以及客户对后面的流程一脸懵逼(发起人对接客户,但经办人不会对客户);
  2. 提交之后没告诉发起人这是一个异步的问题,需要等待一段时间才会有结果;
  3. 实际上,在签约审核的时候,发起人是可以帮客户完成其它业务(如绑定银行卡、消费等),导致发起人跟客户傻傻地等经办人签约完成再去帮客户办理其它业务。

虽然我们有一整队实施团队去帮助集团中的所有使用者去了解业务,但作为一个产品,还是必须保持敬畏之心对待用户才可以。

二、异步与同步

什么是异步呢?

对于程序来说就是一个请求发出去了,但系统不会立刻处理,而是放在队列里,系统会按照队列方式去处理它,或者处理的时间非常长也可以归为异步任务。

反过来同步任务就是请求递交,几乎即时就有反馈。

以前我总是同步、异步的任务都用同样的设计,单纯地通过反馈弹窗告诉用户这个任务大概需要等多久,很多用户就傻傻在那里等着。

于是今天,我按照上边归类的问题,修改了原型:

产品经理,产品经理网站

为了让发起人知道总体的流程,提交签约之后,我们需要反馈一个结果且告诉发起人整体的流程,便于发起人与经办人交接(由于我们接入了企业微信的通知,【催一下】可以直接在企业微信通知经办人)。

产品经理,产品经理网站

第二个问题需要告诉发起人这个任务需要等待,这时候我们需要引入站内消息功能,并且告知用户可在哪里看到查看审核结果的通知。

产品经理,产品经理网站

若这个任务是比较重要的,可以考虑单独列一个任务列表,这样任务完成时,用户可立即知道。

产品经理,产品经理网站

最后,我们需要引导发起人先去完成其他任务,就要在结果页中对按钮做相关业务的跳转,改一下:

产品经理,产品经理网站

总结了一下,异步任务的设计逻辑:

  1. 需要告诉用户整体的流程以及任务的进度;
  2. 需要告诉用户,这个任务需要等待,并告知用户当有结果时,系统会进行及时的通知,让用户安心;
  3. 引导用户去完成其它业务。

另外之前做异步任务的设计时发现一个很严重的问题:用户不敢关闭当前窗口或切换到其它地方,他会很害怕任务会被中断。

所以我们要清楚地告知用户:“这个任务需要等待,有结果时我们会及时通知你,你可以进行其它业务的操作”

未完待续,后续文章请大家持续关注。

作者:蔡包

版权声明

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部