zoukankan      html  css  js  c++  java
  • 利用开源的TaskScheduler组件实现监控和管理windows计划任务

       对于计划任务的执行有很多种解决方案,如利用开源Quartz作业调度框架,在SQL Server的作业等等,同时Windows的任务计划程序功能也很强大,利用此可以很方便的实现很多计划任务,除了人工进行管理和维护外,可以使用开源的TaskScheduler组件进行自动管理和维护,本文主要利用开源TaskScheduler组件进行指定windows任务计划程序的监控和运维,以保证任务计划的稳定可靠,开源TaskScheduler组件的下载地址:http://taskscheduler.codeplex.com/releases/view/110719 。  

     

      运行计划任务,会出现在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;
                }
            }  
    复制代码

             自动启动指定计划任务的核心代码如下:

    复制代码
    using Microsoft.Win32.TaskScheduler;    public void CheckOAFlowSyncRunning()
            {
                try
                {
                    bool IsP = CheckProcessRunning("windows计划任务名称");
    
    
    
                    if (IsP == false)
                    {
                        using (TaskService ts = new TaskService())
                        {
    
                            var t = ts.GetTask("MicrosoftWindowswindows计划任务名称"));
    
                            if (null != t)
                            {
    
                                t.Enabled = true;
                                t.Stop();
                                t.Run();
    
                            }
                        }
    
                    }
    
                }
                catch
                {
    
                }
            }
    复制代码

            通过以上的结合使用,可以封装成控制台应用程序发布到windows计划任务中,也可以封装成windows服务。

      

    本博客为软件人生原创,欢迎转载,转载请标明出处:http://www.cnblogs.com/nbpowerboy/p/3375648.html 。演绎或用于商业目的,但是必须保留本文的署名软件人生(包含链接)。如您有任何疑问或者授权方面的协商,请给我留言。

  • 相关阅读:
    Account group in ERP and its mapping relationship with CRM partner group
    错误消息Number not in interval XXX when downloading
    错误消息Form of address 0001 not designated for organization
    Algorithm类介绍(core)
    梯度下降与随机梯度下降
    反思
    绘图: matplotlib核心剖析
    ORB
    SIFT
    Harris角点
  • 原文地址:https://www.cnblogs.com/lvdongjie/p/5977252.html
Copyright © 2011-2022 走看看