由於 hangfire 在 asp.net 環境有不穩定因素,例如 iis 中應用程式池缺省會在閒時自動休眠、隔一段時間會自動重啟等問題,在對可用性要求高的場景就會凸顯這種不穩定。我認為更合理的方式是使用 windows service 來執行 hangfire,然後另開乙個**作為 hangfire 的操控面板。(一)建立windows service 專案並引入hangfire
(二)引入hangfire
工具->nuget包管理器->程式包管理器控制台
注意:hangfire支援.netframework,version=v4.6及以上版本,所以建立專案時選好框架。install-package hangfire.core
install-package hangfire.mysqlstorage -version 1.0.5
這裡我是用mysql作為hangfire的storage。hangfire 官方在免費版中只提供了 sqlserver 接入的支援,在收費版多乙個 redis。需要 mongodb、sqlserver 、postgresql、sqlite 等其他 storages 的可以自己尋找第三方的開源專案,這裡有乙個官方推薦的擴充套件清單,清單中列出了一些其他種類的 storages。
(三)初始化hangfire服務並新增任務
(四)為該windows 服務新增安裝程式using hangfire;
using hangfire.mysql;
using hangfiremysql;
using system;
using system.collections.generic;
using system.componentmodel;
using system.data;
using system.diagnostics;
using system.linq;
using system.serviceprocess;
using system.text;
using system.threading.tasks;
namespace hangfireservice
protected override void onstart(string args)
protected override void onstop()}}
在服務的設計檢視中右鍵,選擇新增的安裝程式
新增伺服器名稱,描述,starttype等
(五)使用visual studio工具安裝和解除安裝服務
1、用管理員方式開啟cmd
2、安裝命令。找到hangfire 服務的 exe目錄cd c:\windows\microsoft.net\framework\v4.0.30319
3、解除安裝命令。installutil.exe e:\svn\hangfireservice\hangfireservice\bin\debug\hangfireservice.exe
(六)檢視windows 服務安裝是否成功installutil.exe /u e:\svn\hangfireservice\hangfireservice\bin\debug\hangfireservice.exe
我的電腦->右鍵(管理)->服務和應用程式 ->服務。找到生成的服務gyy-hangfire。右鍵啟動即可
hangfire 建立專案(四)
一 建立專案,引入hangfire。以建立的webapi專案為例,簡單實現了延遲任務 工具 nuget包管理器 程式包管理器控制台 plain view plain copy install package hangfire.core install package hangfire.mysqlst...
個人部落格二 建立專案
django是一種基於python的開源web框架,採用了mvc的框架模式。工作區 d userswork 1 建立虛擬環境 2 安裝django 1.11.12 本專案計畫使用此版本開發 3 建立django專案 4 啟動專案 cd blog 進入下專案檔案 預設 127.0.0.1 8000 啟...
個人部落格二 建立專案
django是一種基於python的開源web框架,採用了mvc的框架模式。工作區 d userswork 1 建立虛擬環境 2 安裝django 1.11.12 本專案計畫使用此版本開發 3 建立django專案 4 啟動專案 cd blog 進入下專案檔案 預設 127.0.0.1 8000 啟...