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 。演绎或用于商业目的,但是必须保留本文的署名软件人生(包含链接)。如您有任何疑问或者授权方面的协商,请给我留言。

  • 相关阅读:
    Sql Server 2008学习之第二天
    Sql Server 2008学习之第一天
    Codeforce 1175 D. Array Splitting
    CF1105C Ayoub and Lost Array ——动态规划
    数据结构——并查集
    动态规划——01背包问题
    常用技巧——离散化
    动态规划——稀疏表求解RMQ问题
    基础算法—快速幂详解
    欧拉函数及其扩展 小结
  • 原文地址:https://www.cnblogs.com/lvdongjie/p/5977252.html
Copyright © 2011-2022 走看看