非同步任務 關於非同步任務的設計探索(1)

2021-10-14 17:50:10 字數 1348 閱讀 1324

開票員給客戶開通代收的業務,並且與客戶簽約(即簽訂代收協議);

主管審核客戶的簽約業務,若拒絕,則開票人需要通知客戶修改資料重新提交;

若同意,則簽約成功,流程結束。

自己分析了一下之前的錯誤,發現雖然分析了整體的業務流程、角色的許可權與上下游,但沒有去分析這個任務是同步還是非同步的,導致與開發同學也吵了很久,錯誤分析如下:

提交後沒有告訴發起人(即開票員)整體的流程,導致很多發起人以及客戶對後面的流程一臉懵逼(發起人對接客戶,但經辦人不會對客戶);

提交之後沒告訴發起人這是乙個非同步的問題,需要等待一段時間才會有結果;

實際上,在簽約審核的時候,發起人是可以幫客戶完成其它業務(如繫結銀行卡、消費等),導致發起人跟客戶傻傻地等經辦人簽約完成再去幫客戶辦理其它業務。

雖然我們有一整隊實施團隊去幫助集團中的所有使用者去了解業務,但作為乙個產品,還是必須保持敬畏之心對待使用者才可以。

什麼是非同步呢?

對於程式來說就是乙個請求發出去了,但系統不會立刻處理,而是放在佇列裡,系統會按照佇列方式去處理它,或者處理的時間非常長也可以歸為非同步任務。

反過來同步任務就是請求遞交,幾乎即時就有反饋。

以前我總是同步、非同步的任務都用同樣的設計,單純地通過反饋彈窗告訴使用者這個任務大概需要等多久,很多使用者就傻傻在那裡等著。

於是今天,我按照上邊歸類的問題,修改了原型:

需要告訴使用者整體的流程以及任務的進度;

需要告訴使用者,這個任務需要等待,並告知使用者當有結果時,系統會進行及時的通知,讓使用者安心;

引導使用者去完成其它業務。

另外之前做非同步任務的設計時發現乙個很嚴重的問題:使用者不敢關閉當前視窗或切換到其它地方,他會很害怕任務會被中斷。

所以我們要清楚地告知使用者:「這個任務需要等待,有結果時我們會及時通知你,你可以進行其它業務的操作」

題圖來自 unsplash,基於 cc0 協議

關於非同步任務

packagetest.me.layout importandroid.os.asynctask importandroid.os.bundle importandroid.os.handler importandroid.os.message importandroid.os.systemcloc...

關於非同步任務

packagetest.me.layout importandroid.os.asynctask importandroid.os.bundle importandroid.os.handler importandroid.os.message importandroid.os.systemcloc...

非同步 非同步任務

非同步任務 記錄一下學習完springboot後進行使用非同步方法時的筆記 service層 author yesijie date 2019 11 29 15 25 service public class asyncc catch interruptedexception e system.ou...