1. 程式人生 > >[C#][代碼收集] - 利用開源的TaskScheduler組件實現監控和管理windows計劃任務

[C#][代碼收集] - 利用開源的TaskScheduler組件實現監控和管理windows計劃任務

span releases [] log code str 示例 schedule 調度框架

[轉載] - 軟件人生 - 利用開源的TaskScheduler組件實現監控和管理windows計劃任務 [編輯]

對於計劃任務的執行有很多種解決方案,如利用開源Quartz作業調度框架,在SQL Server的作業等等,同時Windows的任務計劃程序功能也很強大,

利用此可以很方便的實現很多計劃任務,除了人工進行管理和維護外,可以使用開源的TaskScheduler組件進行自動管理和維護,

本文主要利用開源TaskScheduler組件進行指定windows任務計劃程序的監控和運維,以保證任務計劃的穩定可靠,

開源TaskScheduler組件的下載地址:http://taskscheduler.codeplex.com/releases/view/110719 。


01、 系統任務計劃程序

02、 檢查指定windows進程的狀態核心代碼

03、 自動啟動指定計劃任務的核心代碼如下


01、系統任務計劃程序 目錄

  技術分享

  運行計劃任務,會出現在windows的進程中,如下圖:

  技術分享

02、檢查指定windows進程的狀態核心代碼 目錄

本文利用通過一個計劃任務來定時監控管理另一個計劃任務(結合使用Quartz.net實現),如另一個計劃任務停止運行中,則

自動啟動該計劃任務,檢查指定windows進程的狀態核心代碼示例如下:

技術分享
using System.Diagnostics;
  
private
static bool CheckProcessRunning(string runningProcessname) { try { bool returnValue = false; Process[] processes = Process.GetProcessesByName(runningProcessname); foreach (Process process in processes) { returnValue = true; break; }
return returnValue; } catch { return false; } }
查看代碼

03、自動啟動指定計劃任務的核心代碼如下 目錄

技術分享
using Microsoft.Win32.TaskScheduler;

public void CheckOAFlowSyncRunning()
{
    try
    {
        bool IsP = CheckProcessRunning("windows計劃任務名稱");



        if (IsP == false)
        {
            using (TaskService ts = new TaskService())
            {

                var t = ts.GetTask("\Microsoft\Windows\windows計劃任務名稱"));

                if (null != t)
                {

                    t.Enabled = true;
                    t.Stop();
                    t.Run();

                }
            }

        }

    }
    catch
    {

    }
}
查看代碼

[C#][代碼收集] - 利用開源的TaskScheduler組件實現監控和管理windows計劃任務