本申請涉及數據處理技術領域,尤其涉及一種工單處理方法及裝置。
背景技術:
隨著數據處理技術的飛速發展,在企業內部和企業外部會產生工單也越來越多,例如,通過在線機器人、熱線電話、網站等等都會產生很多工單。目前,這些工單都是通過簡單的工單流程程序和數據庫來進行處理的。
按照相關的工單處理方法,都是直接將工單保存在數據庫中,當用戶需要處理工單時,需要從數據庫中獲取該工單,再進行處理,當數據庫中的數據量非常大或者數據庫的訪問壓力非常大,工單查詢耗時非常長,這就會嚴重影響工單處理效率,進而嚴重影響用戶體驗。
技術實現要素:
本申請實施例提供一種工單處理方法及裝置,用以解決相關的工單處理方法中存在的工單查詢耗時非常長,嚴重影響工單處理效率和用戶體驗的問題。
根據本申請實施例,提供一種工單處理方法,包括:
獲取第一工單后,將所述第一工單的基礎數據保存在數據庫中,驅動流程引擎創建所述第一工單的工單狀態、并配置與所述第一工單的每個工單狀態對應的事件,在索引器中構建所述第一工單的基礎數據對應的增量索引;
監控到用戶查詢第二工單后,從所述索引器中獲取所述第二工單的數據;
檢測到第三工單的數據發生變更后,將所述第三工單的最新數據保存在所述數據庫中,在所述索引器中構建與所述第三工單的最新數據對應的增量索引;以及,
檢測到所述流程引擎變更第四工單的工單狀態后,驅動所述流程引擎觸發與所述第四工單變更后的工單狀態對應的事件,將所述第四工單的最新工單狀態保存在所述數據庫中,在所述索引器中構建與所述第四工單的最新工單狀態對應的增量索引。
可選的,還包括:
以設定周期在所述索引器中構建所述數據庫的全部數據對應的全量索引。
具體的,在索引器中構建所述第一工單的基礎數據對應的增量索引,具體包括:
向所述索引器發送第一通知消息,所述第一通知消息中攜帶所述第一工單的基礎數據,以使所述索引器構建所述第一工單的基礎數據對應的增量索引。
具體的,從所述索引器中獲取所述第二工單的數據,具體包括:
向所述索引器發送攜帶所述第二工單的標識信息的查詢請求,以使所述索引器根據所述第二工單的標識信息查詢所述第二工單的數據并發送;
接收所述索引器發送的所述第二工單的數據。
具體的,在所述索引器中構建與所述第三工單的最新數據對應的增量索引,具體包括:
向所述索引器發送第二通知消息,所述第二通知消息中攜帶所述第三工單的最新數據,以使所述索引器構建所述第三工單的最新數據對應的增量索引。
具體的,在所述索引器中構建與所述第四工單的最新工單狀態對應的增量索引,具體包括:
向所述索引器發送第三通知消息,所述第三通知消息中攜帶所述第四工單的最新工單狀態,以使所述索引器構建所述第四工單的最新工單狀態對應的增量索引。
根據本申請實施例,還提供一種工單處理裝置,包括:
第一處理模塊,用于獲取第一工單后,將所述第一工單的基礎數據保存在數據庫中,驅動流程引擎創建所述第一工單的工單狀態、并配置與所述第一工單的每個工單狀態對應的事件,在索引器中構建所述第一工單的基礎數據對應的增量索引;
獲取模塊,用于監控到用戶查詢第二工單后,從所述索引器中獲取所述第二工單的數據;
第二處理模塊,用于檢測到第三工單的數據發生變更后,將所述第三工單的最新數據保存在所述數據庫中,在所述索引器中構建與所述第三工單的最新數據對應的增量索引;以及,
第三處理模塊,用于檢測到所述流程引擎變更第四工單的工單狀態后,驅動所述流程引擎觸發與所述第四工單變更后的工單狀態對應的事件,將所述第四工單的最新工單狀態保存在所述數據庫中,在所述索引器中構建與所述第四工單的最新工單狀態對應的增量索引。
可選的,還包括:
構建模塊,用于以設定周期在所述索引器中構建所述數據庫的全部數據對應的全量索 引。
具體的,所述第一處理模塊,用于在索引器中構建所述第一工單的基礎數據對應的增量索引,具體用于:
向所述索引器發送第一通知消息,所述第一通知消息中攜帶所述第一工單的基礎數據,以使所述索引器構建所述第一工單的基礎數據對應的增量索引。
具體的,所述獲取模塊,用于從所述索引器中獲取所述第二工單的數據,具體用于:
向所述索引器發送攜帶所述第二工單的標識信息的查詢請求,以使所述索引器根據所述第二工單的標識信息查詢所述第二工單的數據并發送;
接收所述索引器發送的所述第二工單的數據。
具體的,所述第二處理模塊,用于在所述索引器中構建與所述第三工單的最新數據對應的增量索引,具體用于:
向所述索引器發送第二通知消息,所述第二通知消息中攜帶所述第三工單的最新數據,以使所述索引器構建所述第三工單的最新數據對應的增量索引。
具體的,所述第三處理模塊,用于在所述索引器中構建與所述第四工單的最新工單狀態對應的增量索引,具體用于:
向所述索引器發送第三通知消息,所述第三通知消息中攜帶所述第四工單的最新工單狀態,以使所述索引器構建所述第四工單的最新工單狀態對應的增量索引。
本申請實施例提供一種工單處理方法及裝置,獲取第一工單后,將所述第一工單的基礎數據保存在數據庫中,驅動流程引擎創建所述第一工單的工單狀態、并配置與所述第一工單的每個工單狀態對應的事件,在索引器中構建所述第一工單的基礎數據對應的增量索引;監控到用戶查詢第二工單后,從所述索引器中獲取所述第二工單的數據;檢測到所述第三工單的數據發生變更后,將所述第三工單的最新數據保存在所述數據庫中,在所述索引器中構建與所述第三工單的最新數據對應的增量索引;以及,檢測到所述流程引擎變更第四工單的工單狀態后,驅動所述流程引擎觸發與所述第四工單變更后的工單狀態對應的事件,將所述第四工單的最新工單狀態保存在所述數據庫中,在所述索引器中構建與所述第四工單的最新工單狀態對應的增量索引。該方案中,將工單的數據存儲在數據庫中,驅動流程引擎創建并監控工單的工單流程,并在索引器中構建工單的數據對應的增量索引,當用戶需要查詢工單時,不是在數據庫中查詢,而是在索引器中進行查詢,這就可以有效緩解數據庫的訪問壓力,尤其是在處理海量工單時,可以有效減少工單查詢耗時,提升工單處理效率和用戶體驗。
附圖說明
此處所說明的附圖用來提供對本申請的進一步理解,構成本申請的一部分,本申請的示意性實施例及其說明用于解釋本申請,并不構成對本申請的不當限定。在附圖中:
圖1為本申請實施例中一種工單處理方法的流程圖;
圖2為本申請實施例中s12的流程圖;
圖3為本申請實施例中一種工單處理裝置的結構示意圖。
具體實施方式
為了使本申請所要解決的技術問題、技術方案及有益效果更加清楚、明白,以下結合附圖和實施例,對本申請進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本申請,并不用于限定本申請。
為了解決相關的工單處理方法中存在的工單查詢耗時非常長,嚴重影響工單處理效率和用戶體驗的問題,本申請實施例提供一種工單處理方法,該方法可以但不限于應用在服務器中,該方法的流程如圖1所示,包括如下步驟:
s11:獲取第一工單后,將第一工單的基礎數據保存在數據庫中,驅動流程引擎創建第一工單的工單狀態、并配置與第一工單的每個工單狀態對應的事件,在索引器中構建第一工單的基礎數據對應的增量索引。
通過熱線電話、在線機器人、客服、各種平臺等都可以創建工單,這些工單可以定義為第一工單。
在獲取第一工單后,將第一工單的基礎數據保存在數據庫中,數據庫可以但不限于是結構化查詢語言(structuredquerylanguage,sql)分庫分表數據庫,sql分庫分表數據庫能夠高效地存儲海量工單的基礎數據。第一工單的基礎數據可以包括客戶問題、提問時間、問題的來源、工單標識、處理客服標識等信息。
還可以驅動流程引擎創建第一工單的工單狀態、并配置與第一工單的每個工單狀態對應的事件,第一工單的所有工單狀態也就是第一工單的生命周期,工單狀態對應的事件可以為,當工單處于創建狀態時給負責的客服發送旺旺、郵件等提醒消息,當工單處于完結狀態時給客戶發送旺旺、郵件等通知消息。流程引擎可以但不限于為工作流中間件(xbpm)。
同時,還可以在索引器張創建第一工單的基礎數據對應的增量索引,以便于用戶在索引器中查詢第一工單的基礎數據,索引器可以但不限于是tsearch索引器,tsearch索引器能夠將多庫多表的數據進行了整合來構建工單的數據對應的索引,提升了多維度索引的靈 活性,進一步降低了數據庫查詢的壓力。
s12:監控到用戶查詢第二工單后,從索引器中獲取第二工單的數據。
由于索引器中已經構建了工單的數據對應的索引,可以直接從索引器中查詢第二工單的數據,尤其在查詢海量工單時,可以有效降低數據庫的訪問壓力,并且提高工單的查詢效率。
s13:檢測到第三工單的數據發生變更后,將第三工單的最新數據保存在數據庫中,在索引器中構建與第三工單的最新數據對應的增量索引。
在工單的處理過程中,客服有可能介入處理工單,客服在與客戶溝通的過程中,會產生很多數據,每次產生的數據都將會保存下來,并同步到數據庫和索引器。由于工單狀態沒有變更,不會驅動流程引擎。一個工單可能不止被客服介入一次,每一次客服介入都會產生一條服務記錄;如果一個客服不能完成,就將這個工單轉接到同一個服務團隊的其他客服,這里工單狀態沒有發生變更,不會驅動流程引擎。如果這個工單的服務內容超過了這個服務團隊的責任范圍,需要將這個工單轉接的別的服務團隊,生成一種新的工單,重新執行s11,并且會驅動流程引擎變更工單狀態,執行s14。
s14:檢測到流程引擎變更第四工單的工單狀態后,驅動流程引擎觸發與第四工單變更后的工單狀態對應的事件,將第四工單的最新工單狀態保存在數據庫中,在索引器中構建與第四工單的最新工單狀態對應的增量索引。
工單狀態可以有多個,例如新建、修改、完結等等,在“新建”結束之后,可以驅動流程引擎將工單狀態變更為“修改”,并觸發“修改”相應的事件,在“修改”結束之后,可以驅動驅動流程引擎將工單狀態變更為“完結”,并觸發“完結”對應的事件。同時還會將工單的最新工作狀態同步到數據庫和索引器中。
上述s11、s12、s13、s14并沒有嚴格的先后執行順序,可以靈活根據監控到的觸發條件來執行。
該方案中,將工單的數據存儲在數據庫中,驅動流程引擎創建并監控工單的工單流程,并在索引器中構建工單的數據對應的增量索引,當用戶需要查詢工單時,不是在數據庫中查詢,而是在索引器中進行查詢,這就可以有效緩解數據庫的訪問壓力,尤其是在處理海量工單時,可以有效減少工單查詢耗時,提升工單處理效率和用戶體驗。該方案可以實現海量工單的生命周期管理、存儲、快速多維度檢索,提供了一套工單處理方案。
可選的,上述工單處理方法還包括:
以設定周期在索引器中構建數據庫的全部數據對應的全量索引。
為了保證索引器中所有工單的數據的完整性和準確性,可以定期將數據庫中的全部數 據同步到索引器中,在索引器中構建數據庫的全部數據對應的全量索引,全量索引構建可以依托于云梯,即分布式計算集群(基于hive)。
具體的,上述s11中在索引器中構建第一工單的基礎數據對應的增量索引的實現過程,具體包括:向索引器發送第一通知消息,第一通知消息中攜帶第一工單的基礎數據,以使索引器構建第一工單的基礎數據對應的增量索引。
第一通知消息可以但不限于采用notify消息,在索引器中構建第一工單的基礎數據對應的增量索引可以有效提升工單的檢索速度。
具體的,上述s12中從索引器中獲取第二工單的數據的實現過程,如圖2所示,具體包括:
s121:向索引器發送攜帶第二工單的標識信息的查詢請求,以使索引器根據第二工單的標識信息查詢第二工單的數據并發送。
當用戶需要查詢第二工單時,可以直接向索引器發送攜帶第二工單的標識信息的查詢請求,索引器查詢第二工單的的標識信息對應的數據然后發送給服務器。其中,第二工單的標識信息可以根據實際需要進行設定。
s122:接收索引器發送的第二工單的數據。
服務器接收索引器發送的第二工單的數據,從而實現查詢第二工單的數據,由于通過索引器查詢第二工單的數據,不是通過數據庫查詢,從而可以有效降低數據庫的訪問壓力,提升工單查詢效率。
具體的,上述s13中在索引器中構建與第三工單的最新數據對應的增量索引的實現過程,具體包括:向索引器發送第二通知消息,第二通知消息中攜帶第三工單的最新數據,以使索引器構建第三工單的最新數據對應的增量索引。
第二通知消息可以但不限于采用notify消息,在索引器中構建第三工單的最新數據對應的增量索引可以有效提升工單的檢索速度。
具體的,上述s14中的在索引器中構建與第四工單的最新工單狀態對應的增量索引的實現過程,具體包括:向索引器發送第三通知消息,第三通知消息中攜帶第四工單的最新工單狀態,以使索引器構建第四工單的最新工單狀態對應的增量索引。
第三通知消息可以但不限于采用notify消息,在索引器中構建第四工單的最新工單狀態對應的增量索引可以有效提升工單的檢索速度。
基于同一發明構思,本申請實施例還提供一種工單處理裝置,該裝置與如圖1所示的工單處理方法相對應,該裝置可以但不限于應用在服務器中,該裝置的結構如3圖所示, 包括第一處理模塊31、獲取模塊32、第二處理模塊33和第三處理模塊34,其中:
上述第一處理模塊31,用于獲取第一工單后,將第一工單的基礎數據保存在數據庫中,驅動流程引擎創建第一工單的工單狀態、并配置與第一工單的每個工單狀態對應的事件,在索引器中構建第一工單的基礎數據對應的增量索引;
上述獲取模塊32,用于監控到用戶查詢第二工單后,從索引器中獲取第二工單的數據;
上述第二處理模塊33,用于檢測到第三工單的數據發生變更后,將第三工單的最新數據保存在數據庫中,在索引器中構建與第三工單的最新數據對應的增量索引;以及,
上述第三處理模塊34,用于檢測到流程引擎變更第四工單的工單狀態后,驅動流程引擎觸發與第四工單變更后的工單狀態對應的事件,將第四工單的最新工單狀態保存在數據庫中,在索引器中構建與第四工單的最新工單狀態對應的增量索引。
該方案中,將工單的數據存儲在數據庫中,驅動流程引擎創建并監控工單的工單流程,并在索引器中構建工單的數據對應的增量索引,當用戶需要查詢工單時,不是在數據庫中查詢,而是在索引器中進行查詢,這就可以有效緩解數據庫的訪問壓力,尤其是在處理海量工單時,可以有效減少工單查詢耗時,提升工單處理效率和用戶體驗。該方案可以實現海量工單的生命周期管理、存儲、快速多維度檢索,提供了一套工單處理方案。
可選的,上述工單處理裝置還包括構建模塊,用于以設定周期在索引器中構建數據庫的全部數據對應的全量索引。
具體的,上述第一處理模塊31,用于在索引器中構建第一工單的基礎數據對應的增量索引,具體用于:
向索引器發送第一通知消息,第一通知消息中攜帶第一工單的基礎數據,以使索引器構建第一工單的基礎數據對應的增量索引。
具體的,上述獲取模塊32,用于從索引器中獲取第二工單的數據,具體用于:
向索引器發送攜帶第二工單的標識信息的查詢請求,以使索引器根據第二工單的標識信息查詢第二工單的數據并發送;
接收索引器發送的第二工單的數據。
具體的,上述第二處理模塊33,用于在索引器中構建與第三工單的最新數據對應的增量索引,具體用于:
向索引器發送第二通知消息,第二通知消息中攜帶第三工單的最新數據,以使索引器構建第三工單的最新數據對應的增量索引。
具體的,上述第三處理模塊34,用于在索引器中構建與第四工單的最新工單狀態對應 的增量索引,具體用于:
向索引器發送第三通知消息,第三通知消息中攜帶第四工單的最新工單狀態,以使索引器構建第四工單的最新工單狀態對應的增量索引。
上述說明示出并描述了本申請的優選實施例,但如前所述,應當理解本申請并非局限于本文所披露的形式,不應看作是對其他實施例的排除,而可用于各種其他組合、修改和環境,并能夠在本文所述發明構想范圍內,通過上述教導或相關領域的技術或知識進行改動。而本領域人員所進行的改動和變化不脫離本申請的精神和范圍,則都應在本申請所附權利要求的保護范圍內。