宋東翔,王怡然
(1.德宏師范高等專科學校,云南德宏,678400;2.德宏職業學院,云南德宏,678400)
隨著信息時代的發展,部分高校在教師招聘工作中使用高校教師招聘管理系統[1]來輔助完成招聘工作。通過研究發現,一部分高校的招聘系統存在一些問題,給招聘工作造成困擾,包括:招聘系統在考生報名時系統的頁面卡頓,如果是報名的高峰期還會出服務器崩潰的情況,嚴重影響考生報考;報名過程中,管理員需要在進行報名表的審核時需要查看考生提交的證明材料(以jpg圖片的畢業證、學位證、身份證等資料為主),但因部分考生不注意查看報名要求,上傳了大量與報名崗位不相關的證明材料,并且大多數的材料還不清晰,無法驗證;有時一個考生的個人資料包就有幾十MB的大小,導致管理員打開審核頁面等待考生所有信息加載的時間太長(有時等待10分鐘),影響招聘工作的效率。綜合這些問題,進行分析發現主要問題就是當招聘過程中用戶同時操作產生高并發數[2],有時同時上傳圖片操作,運行服務器帶寬不夠,就造成了系統上傳文件緩慢。上傳文件大就造成運行服務器存儲的單個資源[3]文件太大(例如上傳的圖片太大,瀏覽器加載都需要20秒甚至更長的時間)。系統的很多功能需要和數據庫交互,所以不高效的數據庫查詢語句造成查詢時間過長。部分考生在抱怨系統影響報名的同時擔心自己填寫的信息、上傳的證明材料是否會出現錯誤,導致自己報名失敗和自己的畢業證、學位證等重要信息會不會泄露等,所以系統安全性也存在問題。綜合以上,本文針對某高校教師招聘管理體統,提出一種優化方案,分別從系統架構、軟件框架、數據庫、安全性等方面進行優化。本文的創新點是結合高校教師招聘管理系統實際運行情況,針對問題提出優化方案,使用目前主流的vue+nodejs框架中的壓縮技術、數據庫優化和圖像優化等完成優化。
以某高校教師招聘管理系統為例,未優化前系統系統分為服務端和客戶端。存在的問題為:部分頁面打開時加載時間超過5s、注冊頁面使用判斷用戶名是否被注冊的功能時,數據庫的查詢時間超過5s和用戶上傳圖片太多時,管理員審核查看信息就需要等待所有圖片被加載出來,浪費很長時間,有時等待1分鐘。針對這些問題,提出優化方案。如圖1所示,分別在系統架構的服務端和客服端[4]進行優化。原系統客服端使用Vue2.6.0來構建,Vue-CLI 3.0來進行系統前端的打包發布。服務端使用Nginx靜態資源服務器來部署,數據庫使用MySQL數據庫,圖片上傳使用multer組件。優化方案為在客戶端中的Vue-CLI 3.0打包配置gzip,服務端Nginx的設置中開啟配置gzip和HTTPS[5],gzip目的是減少網頁單個資源文件的大小,減少頁面加載時間;HTTPS是提高資源傳輸的安全性。服務端優化MySQL的查詢接口,減少部分頁面查詢功能返回值的等待時間。服務器端的multer組件中加入圖片壓縮,目的是對客戶端上傳的圖片進行壓縮后存儲在服務端,系統再調用圖片時,可以減少考生和管理員查看報名信息時網頁圖片加載時間。

圖1 系統架構優化
為了提升系統運行速度,在軟件開發過程中的打包發布環節就使用gzip壓縮進行優化。gzip是一種壓縮技術,經過gzip壓縮后前端的當個資源頁面大小可以減小30%左右,壓縮后,系統頁面的加載時間就快很多。使用gzip需要系統(客戶端)和服務器端共同支持gzip,主流的chrome瀏覽器和nginx服務器都支持gzip。本文的某高校教師招聘系統在軟件開發過程中使用Vue-CLI 3.0打包發布系統代碼,加入gzip優化,首先需要加入compressionwebpack-plugin組件,在文件vue.config.js中配置導入compression-webpack-plugin,在configureWebpack 文件中配置如下代碼:

在服務器nginx中,首先在nginx中下載gzip的模塊,在nginx配置文件中打開配置項gzip on,如果需要開啟gizp的更能多功能,也可以開啟更多的gzip詳細配置項。
因考生進行報名時需要上傳jpg圖片格式的畢業證、學位證、身份證等資料,為了保證數據傳輸時的安全性,需要使用HTTPS協議。HTTPS是一種通過計算機網絡進行安全通信的傳輸協議,利用SSL/TLS建立全信道和加密數據包,由HTTP進行通信。目的是提供對網站服務器的身份認證,同時保護交換數據的隱私與完整性。配置HTTPS,首先需要去服務器商申請證書(本文是在阿里云通過dhszzp.top域名申請免費的HTTPS證書,為5998765_ww wdhszzptop.key和5998765_wwwdhszzptop.pem)。HTTPS證書需要在服務器端被讀取,然后服務器端開啟HTTPS服務。本文把證書上傳到nginx服務器中,在服務器端的app.js文件中加入如下代碼,開啟端口為1011的HTTPS服務。

系統在運行過程中需要和數據庫進行大量交互,通過排查使用查詢功能等待時間超過5s,其中的頁面為:(1)注冊頁面的input用戶名輸入框在考生輸入用戶名后系統會實時查詢用戶名是否被注冊;(2)添加報名表頁面的判斷考生是否已經提交了報名表,如提交就不能再次提交。檢查頁面的代碼發現不存在導致等待時間過長的問題,檢查服務端的判斷用戶名是否被使用和判斷考生是否已經提交過報名表功能接口時發現,數據庫查詢語句使用的是select * from usre where username=”判斷用戶名”和select * from baoming where username=”判斷用戶名”。通過分析,兩個查詢接口的返回值只需要一個布爾值,但是查詢語句中查詢了當前用戶的全部信息。綜合分析為查詢了不必要的信息影響了系統,優化方案為修改查詢語句為select count(username) as count from usre where username='判斷用戶名'和select count(username)as count from from baoming where username='判斷用戶名'。修改接口的返回值為查詢成功返回true,查詢失敗返回false。
考生在系統的客戶端填報報名表時,其中一項是提交證明材料,原系統開發時考慮考生自己掃描的證明材料圖片為了保證清晰度,要求上傳材料必須為jpg格式,大小不超1MB,但是當多個考生上傳的圖片數量多時,影響系統運行。通過優化,要求客戶端上傳的圖片在保證清晰度的情況壓縮到300KB左右,圖片壓縮優化的具體流程如圖2所示,考生提交證明材料圖片,判斷上傳材料是否為jpg格式,大小不超1MB,如果不符合條件,重新上傳。符合條件圖片上傳到服務中,服務器中使用multer組件來接收圖片,multer組件的作用是根據路徑設置存儲圖片,但不改變圖片大小。在處理圖片的業務邏輯中加入image組件,設置組件的屬性值:size為400,quality為50,draw和save和原來的圖片路徑一致。壓縮后的圖片會覆蓋考生上傳的圖片。壓縮之后,前端的考生和管理員查看報名信息時頁面加載的就是壓縮后的圖片。

圖2 圖片壓縮優化流程圖
填寫報名信息,點擊側邊欄報名信息查看招聘崗位,選擇崗位點擊報名。報名頁面整合所有基礎的報名表項,設置有紅色*號的必須填寫項目。政治面貌為無時,加入時間可以不填寫。
上傳本人圖片點擊上傳欄的“+”號選擇個人證件照上傳。如果上傳失誤,可再次點擊圖片,即可再次選擇圖片替換已上傳失誤的圖片。證明材料圖片欄點擊“選擇文件”按鈕選擇學位證、畢業證、身份證等證明圖片,然后點擊“點擊上傳”進行上傳。如需刪除失誤上傳的證明材料,點擊圖片右上角的“×”刪除。出生年月加入時間有時間控件,無需手動輸入,點擊輸入框,彈出時間列表,選擇表上方雙箭頭進行年月的選擇,往左年份越大,往右年份越小。點擊表上方單箭頭進行月份的選擇,往左月份越大,往右月份越小。設置身份證和聯系方式必須為18位和11位。
管理員可以查看所有通過初審通過的招聘者報名信息,為了結合管理員日常的審核習慣和方便審核,系統把報名信息設計為一張類似word的報名表,對應招聘者提交的報名信息證明材料在報名表的下方每行一張圖片顯示。管理員可以很清晰直觀的審核信息,年紀較大的管理員不會因為辦公環境切換為網絡平臺而感到不適應。并且審核時只需選擇通過和不通過的下拉列表,附上審核說明就完成審核。
實驗使用的是經過優化的某高校教師招聘管理系統,詳細配置參數是:服務器:阿里云ecs.s6-c1m2.small、操作系統:Alibaba Cloud Linux 2.1903 LTS 64位、No deJS:12.0.1、Vue:2.6.1、Vue-CLI:3.0、multer:1.4.2、MyS QL:5.7.1。設置gzip之后,系統前端打包后的部分資源大小如圖3所示,dist/static/js/chunk-47ce0732.889cd10a.js文件在壓縮之前有1524.56KiB,使用gzip壓縮后,大小為473.07KiB,減小了近3倍,之后的文件也壓縮了3-4倍。

圖3 系統前端打包發布資源詳細圖
在chrome瀏覽器中輸入https://dhszzp.top域名訪問,瀏覽器驗證證書有效,連接是安全的。通過測試系統注冊頁面的判斷用戶名是否被使用接口和報名頁面考生是否已經提交報名表功能查詢接口,結果如表1所示。

表1 用戶名判斷和報名表判斷優化前后加載時間表(單位ms)
通過優化后的某高校教師招聘管理系統,在前端打包發布的頁面資源文件大小平均減小近3倍,數據庫查詢功能接口的等待時間不超過300ms,上傳圖片在保證圖片質量的同時壓縮到300kb左右,管理員審核時的等待時間平均不超過3s,HTTPS協議成功開啟,保證了系統信息的安全性,減少考生和管理員審核等待時間,提升報名操作體驗,全面提升高校教師招聘工作的效率。但是系統還是存在一些缺陷,例如一個管理員審核所有報名信息,可能會出現管理員惡意篡改報名信息,后期研究使用區塊鏈的可追溯和不可篡改特性優化系統。