Lv.的博客

利用开源的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("\Microsoft\Windows\windows计划任务名称"));

                        if (null != t)
                        {

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

                        }
                    }

                }

            }
            catch
            {

            }
        }
复制代码
复制代码

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

  

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

posted @   Avatarx  阅读(1553)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
历史上的今天:
2015-10-19
2015-10-19 labview中层叠式顺序结构与平铺式顺序结构有什么不同?
2015-10-19 层叠式顺序结构
2015-10-19 平铺式顺序结构
点击右上角即可分享
微信分享提示