topshelf注册服务

1.需要从nutget上获取toshelf配置

2.代码

using Common.Logging;
using Quartz;
using Quartz.Impl;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Topshelf;

namespace quartzNetTest
{
    class Program
    {
        public static NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();
        static void Main(string[] args)
        {
            //sched.Start();
            HostFactory.Run(x =>
            {
                x.Service<RegisterHost>(s =>
                {
                    s.ConstructUsing(name => new RegisterHost());
                    s.WhenStarted(tc => tc.Start());
                    s.WhenStopped(tc => tc.Stop());
                    s.WhenPaused(tc => tc.Stop());
                    s.WhenContinued(tc => tc.Start());
                });
                x.RunAsLocalSystem();                            // 服务使用NETWORK_SERVICE内置帐户运行。身份标识,有好几种方式,如:x.RunAs("username", "password");  x.RunAsPrompt(); x.RunAsNetworkService(); 等
                x.SetDescription("测试服务");        //安装服务后,服务的描述
                x.SetDisplayName("QuartzNetTest");                       //显示名称
                x.SetServiceName("QuartzNetTest");                       //服务名称
            });
        }
    }
    public class RegisterHost
    {
        public static NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();
        public readonly IScheduler Scheduler;
        public RegisterHost()
        {
            logger.Trace("------- 开始 ----------------------");
            ISchedulerFactory schedulerFactory = new StdSchedulerFactory();
            this.Scheduler = schedulerFactory.GetScheduler();
        }
        public void Start()
        {
            Scheduler.Start();
            logger.Trace("开始执行调度任务");

        }
        public void Stop()
        {
            if (Scheduler != null)
            {
                logger.Trace("等待所有执行结束");
                Scheduler.Shutdown(true);
            }
            logger.Trace("定时器结束工作");
        }
    }
}

没错,整个程序已经开发完了,接下来,只需要简单配置一下,即可以当服务来使用了。安装很方便:

安装:TopshelfDemo.exe install
启动:TopshelfDemo.exe start
卸载:TopshelfDemo.exe uninstall

 

 

下载demo: http://pan.baidu.com/s/1boFufSF 

 

转载于:https://www.cnblogs.com/elsons/p/7612926.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值