Window Service 計劃任務

在ASP.NET中建立計劃任務,就我我的而言,用過兩種方式,一種是用SQL Server建立,把寫好的SSIS包導入SQL Server建立的任務中,設置好時間讓它去執行。還有一種就是利用window 服務。接下來我將講述如何用window service 去建立計劃任務,讓它在咱們設定的時間內執行。git

 1.新建項目,而後選擇Windows服務。以下:github

2.右鍵空白處,選擇「添加安裝程序」。ide

 

3.右鍵 serviceProcessInstaller1,選擇屬性,將Account的值改成LocalSystem。目的是爲了保證不管哪一個用戶使用這臺電腦都能啓動服務。工具

4.打開 Service1.cs設計界面,從工具箱裏面拖一個timer控件進來,檢查咱們的程序是否到了執行時間了。spa

 5.右鍵timer,選擇屬性,切換到事件,給timer控件綁定一個tick事件.設計

6.添加一個 Scheduler.cs(本身命名) 裏面寫入咱們須要執行的邏輯代碼。對於做業一般會須要設置執行時間,執行的週期,好比星期一到星期五,哪幾天執行,幾點鐘執行等。咱們能夠創建相關表,存儲設置的執行時間和週期,而後在代碼裏去判斷時間是否符合,若是符合就繼續執行。固然在這裏我爲了舉例方便,就只寫一個很簡單的方法。3d

namespace WindowsServiceDemo {

    class Scheduler {

        static void Record() {

            using (System.IO.StreamWriter sw = new System.IO.StreamWriter("E:\\log.txt", true)) {
                sw.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss "));
            }
        
        }

    }
}

7.在Service1.cs裏面去調用 code

namespace WindowsServiceDemo {
    public partial class Service1 : ServiceBase {
        public Service1() {
            InitializeComponent();
        }

        protected override void OnStart(string[] args) {

            timer1.Enabled = true;
            timer1.Start();

            timer1_Tick(timer1, null);
        }

        protected override void OnStop() {
            timer1.Stop();
        }

        private void timer1_Tick(object sender, EventArgs e) {

            Scheduler.Record();

        }

    }
}

8.安裝window 服務blog

1)安裝腳本Install.bat事件

%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\installutil.exe WindowsServiceDemo.exe
Net Start Service1
sc config Service1 start= auto

2)卸載腳本Uninstall.bat

%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\installutil.exe /u WindowsServiceDemo.exe

把這兩個腳本和最後生成的做業放在同一目錄,而後運行Install.bat。這時,咱們打開服務管理界面,能夠看到咱們安裝的服務。

 

而後再打開E盤,能夠看到record方法執行成功。

 

代碼下載:https://github.com/Aulanto/window-service-scheduler.git

相關文章
相關標籤/搜索