Crontab Linux 类 Windows 服务





4.00/5 (7投票s)
一个 Windows 服务,
什么是 Windows 服务管理器?
这是一个类似于 Linux Crontab 的 Windows 服务,允许您以非常灵活和可调度的方式指定必须执行的应用程序。其目的是在 .NET 中以良好的计划目标运行库,允许库中的每个日常活动按预期执行。

在上图中,我们看到了这个系统的主要组件,这些组件允许运行任何实现标准接口IService
的组件。此接口基于服务的核心方法:Start()
、Stop()
、Pause()
和Continue()
。

启动服务时,它会读取管理和执行 Windows 服务的进程,并根据设定的计划执行。每个进程都必须实现IService
接口,这将允许 Windows 服务以类似于 Windows 下服务的方式操作进程。
ReadCrontab()
方法负责读取要执行的文件。

定义了包含必须运行的进程列表的数据源后,服务每 30 秒检查一次此列表,以实例化和运行任何已指定要运行的进程。
如果那是设置案例的确切时间点,则从程序集中读取、实例化和执行它,并向它传递的任何参数都告知调度进程。

服务记录进程窗口,并实例化和运行 - 在创建允许进程在运行时更新服务窗口记录的信息的对象“Item
”之前 - 因此,如果由于某种原因,进程在服务的意外窗口中中断,下次或启动时,可能会收集此类信息,实例化并运行该进程,以便它完成其任务。
实现 IService 接口
接口的实现非常简单,并允许 Windows 服务与进程以及反向通信。例如,进程可以通过设置ItemException
属性的值来返回执行过程中发生的任何异常。“Success
”属性指示进程是否在没有任何错误的情况下执行 - 它基于“ItemException
”属性的值来设置此值:如果该属性等于“零”,则返回值为true
。

作为示例提供的可下载代码包含两个类:Person
和Address
。Address
类只包含方法声明,而Person
类的实现非常简单易懂。
Person 的实现运行一个循环,该循环将记录从参数“Commom.Process.Item
”开始直到完成的进程进度。

免责声明
我的英语不太好,所以我没有什么灵感可以进一步解释,但目的是在 .NET 中实现一个解决方案,允许运行多个类似于 Linux Crontab 的进程。
如果您想以任何方式贡献,请这样做。我希望改进此代码并使其对更多人有用。
我还想强调,并非此处提供的全部代码都是我完全创作的 - 不幸的是,我在我的文件中找不到原始文章以给予应得的荣誉,但我可以保证此处的所有代码都可以使用和改编,因为它们都是免费的。
所以请随意使用。
历史
这段代码是我开始使用 C# 时就实现的一个长期工作的成果。当时我还不知道反射。这是 2009-08-29 更新的最新版本。