在项目中,开发完自己的packages之后,需要使用agentjob之类的服务来调度自己的package,当然我们也可以使用一个package来调度这些,下面就是我的一个简单的尝试.

没有设计得像Agentjob那样复杂,agentjob中的每一个job都包含schedule,然后每一个job有若干个step,每一个step之间还是有依赖关系.

我的设计很简单,就是使用一个csv文件保存三列值,一列是order,一列是batfilename,第三列是isenabled.

分别表示执行顺序,batch file的名字,(其实也可以设计成包的路径)和是否执行.

示例如下:

我暂且就叫它MainFrame吧,它的基本结构如下:

除了执行之外,我还想获取执行过程中返回的信息,存储到一个文件中去,所以添加了一些变量,另外一个考虑是方便配置.

Step1.使用一个Dataflowtask读取csv文件的内容到一个recordset.

Step2.使用foreach loop组件遍历这个Recordset,然后分别进行处理.

如果isenabled是true,则就是需要执行的batch file.则使用Execute process task执行.

然后写入返回的结果即可.

Data flow task的内容如下:

Execute process task的配置如下:

最后一个script task的代码基本如下:

string _errorinfo=Dts.Variables["User::var_outputfile"].Value.ToString();

string _outputinfo= Dts.Variables["User::var_outputfile"].Value.ToString();

StringBuilder sbcontent = new StringBuilder();

sbcontent.Append("outputinfo:");

sbcontent.Append(_outputinfo);

sbcontent.Append(Environment.NewLine);

sbcontent.Append("errorinfo:");

sbcontent.Append(_errorinfo);

sbcontent.Append(Environment.NewLine);

File.AppendAllText(_filename,sbcontent.ToString());

全部流程没有经过完全的测试,可能需要稍微调整一些内容.

仅供学习参考.

我们还可以再添加一些有用的内容,譬如执行完成后发邮件通知等等.这样更方便.

使用SSIS包调度开发的包的更多相关文章

  1. python笔记6 模块与包 程序开发规范 包 re sys time os模块

    模块与包 python 模块首引用加载到内存,如果再次引用此模块,直接从内存中读取. python文件分为:执行文件(解释器运行的文件),被引用文件(import) 模块引用一共发生了3件事: 1.他 ...

  2. SSIS包的开发

    在上一章节中我们初步了解了SSIS体系结构以及如何创建一个SSIS包.现在就介绍一下如何在创建的包中使用各个选项卡.打开上一章节创建的SSIS包.整个界面风格如下: 在整个包中包含了控制流选项卡.数据 ...

  3. 如何在 ETL 项目中统一管理上百个 SSIS 包的日志和包配置框架

    一直准备写这么一篇有关 SSIS 日志系统的文章,但是发现很难一次写的很完整.因为这篇文章的内容可扩展的性太强,每多扩展一部分就意味着需要更多代码,示例和理论支撑.因此,我选择我觉得比较通用的 LOG ...

  4. 实例学习SSIS(三)--使用包配置

    原文:实例学习SSIS(三)--使用包配置 导读: 实例学习SSIS(一)--制作一个简单的ETL包 实例学习SSIS(二)--使用迭代 实例学习SSIS(三)--使用包配置 实例学习SSIS(四)- ...

  5. SSIS教程:创建简单的ETL包 -- 5. 添加包部署模型的包配置(Adding Package Configurations for the Package Deployment Model)

    包配置允许您从开发环境的外部设置运行时属性和变量. 配置允许您开发灵活且易于部署和分发的包.Microsoft Integration Services 提供了以下配置类型: XML 配置文件 环境变 ...

  6. linux 下安装开发组件包

    最初安装redhat 时, 系统自己装的,只安装了base 包,在开发过程中,需要不停的安装某个需求包,   图省事,安装光盘下的开发组件包: 在安装光盘下,,,用命令: yum grouplist ...

  7. Day5 函数递归,匿名、内置行数,模块和包,开发规范

    一.递归与二分法 一.递归 1.递归调用的定义 递归调用:在调用一个函数的过程中,直接或间接地调用了函数本身 2.递归分为两类:直接与间接 #直接 def func(): print('from fu ...

  8. 如何在本地开发Composer包

    如何在本地开发Compoer包 周煦辰 2019-05-26 记录一下如何在本地开发一个Composer包,以及如何发布到Packgist. 假设你要开发一个名叫xuchen/biubiubiu的包. ...

  9. DELPHI开发LINUX包

    DELPHI开发LINUX包 我们知道,有了包的存在,开发插件架构的程序,才成为可能 . DELPHI在WINDOWS里面的包的扩展名是.bpl. 在LINUX里面的包的扩展名是.so. 怎样在LIN ...

随机推荐

  1. How to manage the certificates in the PC

    1.open Run command. 2.enter 'mmc' . 3.Click File, and Add or Remove Snap-in. 4.Select Certificates, ...

  2. 发布在IIS的网站,可以用本机IP登录访问,用localhost不可登录访问

    之前在IIS发布一个测试的网址,但是用本机IP可以访问,用localhost不可访问

  3. Windows下 C++ 实现匿名管道的读写操作

    由于刚弄C++没多久,部分还不熟练,最近又由于开发需求要求实现与其他程序进行通信,瞬间就感觉想到了匿名通信.于是自己查阅了一下资料,实现了一个可读可写的匿名管道: 源代码大部分都有注释: Pipe.h ...

  4. struts2进阶篇(4)

    一.使用ActionContext访问Servlet API strtus2提供了一个ActionContext类,该类别称为Action上下文或者Action环境,Action可以通过该类来访问最常 ...

  5. linux下的inode记录

     我们经常在Linux下可以看到inode,都不知道是什么东东,那么我们现在来慢慢了解下.   一.inode是什么? 理解inode,要从文件储存说起. 文件储存在硬盘上,硬盘的最小存储单位叫做&q ...

  6. Hibernate的缓存技术详解

    转载注明出处:http://www.cnblogs.com/xiaoming0601/p/5882980.html 一.什么是缓存: 并不是指计算机的内存或者CPU的一二级缓存:缓存是指为了降低应用程 ...

  7. linux backlog深入剖析以及netty设置backlog

    netty不同于socket,其上次API没有提供设置backlog的选项,而是依赖于操作系统的somaxconn和tcp_max_syn_backlog,对于不同OS或版本,该值不同,建议根据实际并 ...

  8. udid替代方案

    转自http://www.cnblogs.com/zhulin/archive/2012/03/26/2417860.html UDID替代方案   背景: 大多数应用都会用到苹果设备的UDID号,U ...

  9. English Training Material - 04

    Inviting What kinds of social activities in your city could be appropriate ways of entertaining visi ...

  10. Sharepoint学习笔记—习题系列--70-573习题解析 -(Q70-Q72)

    Question 70You plan to create one provider Web Part and two consumer Web Parts.You need to ensure th ...