概述

Autofac 是一款超赞的.NET IoC 容器 . 它管理类之间的依赖关系, 从而使 应用在规模及复杂性增长的情况下依然可以轻易地修改 . 它的实现方式是将常规的.net类当做 组件 处理。我们通常在一些情况下需要软件具有一个自动执行某些任务的功能,但是又不希望直接启动软件,或者每次都要手动的来启动软件,这时我们可可以考虑到windows服务了。

下面我们来看下在windows服务quartz任务下,如何使用注入信息autofac,以实现和web其他项目使用公共类库。

主要实现

1、Program下,Main启动执行Bootstrapper。

   //AutofacAutofacConfig.Bootstrapper();

2、实现基类AutofacConfig.Container.BeginLifetimeScope()

  public void Execute(IJobExecutionContext context){try{logger.Info($"{GetLoggerName()} Start DoJob");//設定 Settings (JobDataMap)Settings = context.JobDetail.JobDataMap;//建立 Autofac lifetime scopeusing (ILifetimeScope scope = AutofacConfig.Container.BeginLifetimeScope()){DoJob(context, scope, null);}    }catch (Exception ex){logger.Error(ex, ex.Message);//發送錯誤訊息給 ITSendMailByAlert("Unhandle", ex.ToString());}finally{logger.Info($"{GetLoggerName()} Finish DoJob");}}

3、各自业务的实现DoJob(IJobExecutionContext context, ILifetimeScope scope, string[] args)

 public class CampaignPermissionJob : BaseJob{public override void DoJob(IJobExecutionContext context, ILifetimeScope scope, string[] args){//Login Statusvar setLoginStatus = scope.Resolve<ISetLoginStatus>();var campaignPermissionService = scope.Resolve<ICampaignPermissionService>();var queueList = campaignPermissionService.GetQueueList();foreach (var queue in queueList){setLoginStatus.SetAccount(queue.Account);campaignPermissionService.Execute(queue);}}}

windows服务autofac注入quartz任务相关推荐

  1. Quartz.NET 2.0 学习笔记(5) :实例创建Windows服务实现任务调度 Quartz.NET 项目地址 http://quartznet.sourceforge.net/ Quar

    Quartz.NET 2.0 学习笔记(5) :实例创建Windows服务实现任务调度 Quartz.NET 项目地址 http://quartznet.sourceforge.net/ Quartz ...

  2. windows 服务实现定时任务调度(Quartz.Net)

    我们通常在一些情况下需要软件具有一个自动执行某些任务的功能,但是又不希望直接启动软件,或者每次都要手动的来启动软件,这时我们可可以考虑到windows服务了. 首先创建一个windows服务项目(详细 ...

  3. Windows服务调用Quartz.net 实现消息调度

    Quartz.NET是一个开源的作业调度框架,是OpenSymphony 的 Quartz API的.NET移植,它用C#写成,可用于winform和asp.net应用中.它提供了巨大的灵活性而不牺牲 ...

  4. C# 定时任务 调度框架 WebWork (Quartz.NET) Web版的Windows服务

    说起这个,还是觉得很自豪的(另外这里还要特别感谢Nick同学),至少目前我没有见到有这样现成框架,这个东西主要是用来调度任务的,就是根据时间定时执行一个任务,而这个任务你可以用C# 写成一个一个的dl ...

  5. Quartz+TopShelf实现Windows服务作业调度 (转载)

    Quartz:首先我贴出来了两段代码(下方),可以看出,首先会根据配置文件(quartz.config),包装出一个Quartz.Core.QuartzScheduler instance,这是一个调 ...

  6. 使用Topshelf轻松创建Windows服务

    目录 介绍 入门 示例1-基本的winservice 所需的NuGet软件包 Topshelf Bootstrap.cs 示例2-Scheduledservice 所需的NuGet软件包 Topshe ...

  7. 以Windows服务方式运行.NET Core程序

    原文:以Windows服务方式运行.NET Core程序 在之前一篇博客<以Windows服务方式运行ASP.NET Core程序>中我讲述了如何把ASP.NET Core程序作为Wind ...

  8. ABP后台服务之作业调度Quartz.NET

    一.简介 Quartz.NET是一个开源的作业调度框架,是OpenSymphony 的 Quartz API的.NET移植,它用C#写成,可用于winform和asp.net应用中.它提供了巨大的灵活 ...

  9. .NET Core Generic Host项目使用Topshelf部署为Windows服务

    1..NET Core Generic Host是什么? 在.NET Core 2.1版本加入了一种新的Host,即Generic Host(通用主机). 现在在2.1版本的Asp.Net Core中 ...

最新文章

  1. 6D位姿估计Point Pair Feature (PPF)算法详解
  2. python统计字符串中每个单词出现的次数_python中每个单词出现的次数是一组字符串?...
  3. Java内存使用量测试 看看我们天天在用的JVM到底浪费了多少内存资源
  4. linux(4)-Ptrace 系统调用的使用
  5. java怎么给类中的私有变量赋值_Java学习笔记分享 如何理解接口抽象类和关键字...
  6. 修改labelImg软件的yolo标注写入格式(.txt文件不换行的解决办法)(将换行符'\n'替换成'\r\n')
  7. [云炬创业基础笔记] 第三章测试10~12
  8. 计算机课玩手机检讨500,玩手机检讨书500字
  9. HDU 1565 状态压缩
  10. python 百度百科 爬虫_爬虫爬取百度百科数据
  11. 光纤收发器一定要成对使用吗?
  12. php 多层 对象,php多层数组和对象的转换
  13. 邮箱发大文件服务器怎么删除,Exchange 2010如何删除系统默认邮箱数据库
  14. 笔记本升级win10后键盘失灵解决办法
  15. 高考数学47分学计算机,从57分到高考数学131分,4个月的时间我竟创造了这个传奇!...
  16. 人工神经网络通俗解释
  17. openresty ngx_lua重定向
  18. redis数据库正确用法
  19. ftp上传工具 绿色,4个好用的绿色 ftp上传工具
  20. [ext4]空间管理 - 分配机制

热门文章

  1. Maven -- 在进行war打包时用正式环境的配置覆盖开发环境的配置
  2. ubuntu make menuconfig error
  3. JavaScript 游动层onmouseover
  4. 男人别让爱你的女孩流泪
  5. word中图片超出页边距_如何在Word中更改页边距
  6. 愚蠢的怪胎技巧:通过命令行管理SkyDrive
  7. Taro小程序采坑记
  8. 用Cocos2dx开发棋牌游戏的观点解析
  9. 云堆栈三大服务模式解析
  10. jenkins maven testng selenium自动化持续集成