先說一下背景:某專案需要後台定時進行特殊處理,將處理結果返回到前端。由於涉及到內外網互動、gis空間分析等操作,而且專案屬於省級型別,終端使用者會很多,對於後台任務的穩定性要求較高,同時需要在內外網分別部署以完成互動工作。
問題:(1)程式很簡單,乙個窗體、乙個按鈕,使用者互動性不好;
(2)多個任務由多個獨立的程式承擔,開啟的應用程式多,維護性不好。
正文:其實一開始我只是想檢查一下**解決一下容易出錯的問題,不料開啟解決方案後,對於**的結構、規範感覺一臉懵逼。因為處理資料來源不同,大段的重複**;大量被吃掉的異常;頻繁的條件結果……。
乙個10多年的老程式設計師無法容忍這種情況,於是開始改造之路,花了2天時間
把功能邏輯進行了修改,同時提煉了乙個外掛程式式後台任務管理程式,並規範了後台任務的編寫規範。
程式特點:
1.外掛程式式
定義了task外掛程式檔案,使用者只需要編寫dll,並編輯tsk檔案即可註冊到管理程式;
2.統一的日誌管理
實現了簡單的日誌管理,每個任務外掛程式的日誌獨立儲存,便於使用者排查問題。
3.統一的編碼規範
自定義task時,只需要實現docustomwork方法,在該方法中完成實際邏輯。
4.定義了preloaded型別的任務,preloaded任務擁有最優先執行許可權,且只執行1次,用於完成初始化操作,如arcengine許可初始化。只有preloaded任務執行完畢後,才後執行普通任務。
5.可以實時修改任務的配置,如:是否自動執行、奔潰後是否自動重啟、重啟次數、任務執行間隔時間等。
IOS 執行乙個有限長度的後台任務
重要 應用程式可以同時執行任意數量的任務。每次你開始乙個後台任務,方法beginbackgroundtaskwithexpirationhandler 返回乙個對那個任務的唯一標識。你必須將相同的標識傳入endbackgroundtask 方法中,當那個任務結束的時候。在退出時,啟動乙個後台任務 s...
搭建乙個簡單的後台管理系統(一)
1.建立乙個資料夾myadmin 2.進入該資料夾的操作命令 3.依次輸入下列命令 vue init 初始化專案 npm install 安裝npm 模組 的依賴 cd myadmin 進入專案目錄 npm run serve 執行專案 繼續在上面命令行內輸入 這裡是完整安裝 npm i eleme...
實現乙個簡單的Vue外掛程式
外掛程式通常會為 vue 新增全域性功能。外掛程式的範圍沒有限制 一般有下面幾種 1.新增全域性方法或者屬性,如 vue custom element 2.新增全域性資源 指令 過濾器 過渡等,如 vue touch 3.通過全域性 mixin 方法新增一些元件選項,如 vue router 4.新...