zoukankan      html  css  js  c++  java
  • Window Service 计划任务

    在ASP.NET中创建计划任务,就我个人而言,用过两种方式,一种是用SQL Server创建,把写好的SSIS包导入SQL Server创建的任务中,设置好时间让它去执行。还有一种就是利用window 服务。接下来我将讲述如何用window service 去创建计划任务,让它在我们设定的时间内执行。

     1.新建项目,然后选择Windows服务。如下:

    2.右键空白处,选择“添加安装程序”。

     

    3.右键 serviceProcessInstaller1,选择属性,将Account的值改为LocalSystem。目的是为了保证无论哪个用户使用这台电脑都能启动服务。

    4.打开 Service1.cs设计界面,从工具箱里面拖一个timer控件进来,检查我们的程序是否到了执行时间了。

     5.右键timer,选择属性,切换到事件,给timer控件绑定一个tick事件.

    6.添加一个 Scheduler.cs(自己命名) 里面写入我们需要执行的逻辑代码。对于作业通常会需要设置执行时间,执行的周期,比如星期一到星期五,哪几天执行,几点钟执行等。我们可以建立相关表,存储设置的执行时间和周期,然后在代码里去判断时间是否符合,如果符合就继续执行。当然在这里我为了举例方便,就只写一个很简单的方法。

    namespace WindowsServiceDemo {
    
        class Scheduler {
    
            static void Record() {
    
                using (System.IO.StreamWriter sw = new System.IO.StreamWriter("E:\log.txt", true)) {
                    sw.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss "));
                }
            
            }
    
        }
    }

    7.在Service1.cs里面去调用 

    namespace WindowsServiceDemo {
        public partial class Service1 : ServiceBase {
            public Service1() {
                InitializeComponent();
            }
    
            protected override void OnStart(string[] args) {
    
                timer1.Enabled = true;
                timer1.Start();
    
                timer1_Tick(timer1, null);
            }
    
            protected override void OnStop() {
                timer1.Stop();
            }
    
            private void timer1_Tick(object sender, EventArgs e) {
    
                Scheduler.Record();
    
            }
    
        }
    }

    8.安装window 服务

    1)安装脚本Install.bat

    %SystemRoot%Microsoft.NETFrameworkv4.0.30319installutil.exe WindowsServiceDemo.exe
    Net Start Service1
    sc config Service1 start= auto

    2)卸载脚本Uninstall.bat

    %SystemRoot%Microsoft.NETFrameworkv4.0.30319installutil.exe /u WindowsServiceDemo.exe

    把这两个脚本和最后生成的作业放在同一目录,然后运行Install.bat。这时,我们打开服务管理界面,可以看到我们安装的服务。

     

    然后再打开E盘,可以看到record方法执行成功。

    代码下载:https://github.com/Aulanto/window-service-scheduler.git

  • 相关阅读:
    pagic Deno + React 驱动的静态网站生成器 入门
    antd Form.Item label添加解释信息
    deno可以通过url引入标准库,运行时自动下载,下载到哪里呢
    如何查看github开源项目star趋势
    使用deno开发post请求,get请求,监测文件变化自动重启(类似于nodemon)
    windows安装deno
    react 轮播图 react-slick
    display:flex 元素垂直居中,有间距,右对齐
    Java对map键名进行顺序排序后转为字符串
    IDEA快捷键大全
  • 原文地址:https://www.cnblogs.com/qiuyan/p/3564931.html
Copyright © 2011-2022 走看看