收藏 分享(赏)

Windows 自动定时执行任务的几种实现方法.doc

上传人:hskm5268 文档编号:6854153 上传时间:2019-04-24 格式:DOC 页数:6 大小:73.50KB
下载 相关 举报
Windows 自动定时执行任务的几种实现方法.doc_第1页
第1页 / 共6页
Windows 自动定时执行任务的几种实现方法.doc_第2页
第2页 / 共6页
Windows 自动定时执行任务的几种实现方法.doc_第3页
第3页 / 共6页
Windows 自动定时执行任务的几种实现方法.doc_第4页
第4页 / 共6页
Windows 自动定时执行任务的几种实现方法.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

1、Windows 自动定时执行任务的几种实现方法 2011-10-20 17:40:10| 分类: Sql Server|字号 订阅Windows 自动定时执行任务,常见的方法有三种: Windows 任务计划程序 Windows Service SQL Agent 的 Job 这三种方法大多数人都用过,我在这里只做一个比较简单的介绍和小结,后续,我会用一个轻量型的.Net Windows Service Jobs 的作为例子介绍如何定制 Windows Service 以及如何让 Windows Service 自动定时执行任务。首先,我们来看:使用 Windows 任务计划程序 如何创建自动

2、定时执行任务:界面方式: 计算机(右键)-管理 ,然后就可以打开 “计算机管理”界面,在界面的左侧有一个 系统工具- 任务计划程序 ,在此我们可以创建定时执行的计划任务,并且可以为每个任务添加触发器和具体的操作。; 具体的使用方法应该很简单,这里就不再一一介绍。CMD 命令行方式: 主要命令是 SchTasks (另外还有 AT 命令,该命令用来调用或者执行已经存在于Task Schedule 列表中的 Task). 命令行形式可以用于制作安装和部署包。如果用界面方式的话,安装和部署都不太方便。SchTasks /?: 查看 SchTasks 命令, SCHTASKS /parameter a

3、rguments描述:允许管理员创建、删除、查询、更改、运行和中止本地或远程系统上的计划任务。参数列表:/Create 创建新计划任务。/Delete 删除计划任务。/Query 显示所有计划任务。/Change 更改计划任务属性。/Run 按需运行计划任务。/End 中止当前正在运行的计划任务。/ShowSid 显示与计划的任务名称相应的安全标识符。/? 显示此帮助消息Windows 任务计划程序需要:具体的任务执行程序(exe,批处理);而通过设置,让 Windows 来控制具体的执行的具体时间,重复度,触发条件,等。我们可以控制的是 具体的任务执行程序。 当然如果我们将什么时候定时执行任

4、务,以及如何重复执行,触发条件等都写在程序里,也未尝不可,但是这样的话,就抹杀了 Windows 任务计划程序的特有功能了!接下来,我们来看一下,Windows Service 如何解决自动定时执行任务。利用 Windows Service 解决自动定时执行任务的方案是,制作一个 Windows Service 程序,在 Service内部部署好具体的任务程序,以及控制任务什么时候执行,如何重复,等等。他的可控性和自定义空间相比任务计划程序大,但是自己的工作量相对而言就大一些。有关如何制作 Windows Service 程序,我在下篇文章中会介绍,这里只介绍如何部署和卸载。部署 Window

5、s Service 只能通过命令行形式来部署。但是具体的命令有两种: InstallUtil 和 sc(也可以在 Windows Service 的 Program 启动点中添加自定义的 Installer 和启动参数来实现不用InstallUtil 和 sc 来安装和卸载,最后还是要通过命令行形式输入运行参数来安装,这个我会在后续的文章中详解如何在 Windows Service 中添加启动参数和自定义 Installer) InstallUtil.exe 是.NetFramework 自带的工具,一般他的路径在 C:WindowsMicrosoft.NETFrameworkversion

6、下。使用方法: installutil /uninstalloption .assemblyname其中 assemblyname 必须使用程序集的版本、区域性和公钥标记完全限定程序集名称详情请见 InstallUtil.exe (MSDN)SC 是系统自带的命令,不需要.Net Framework(当然如果希望运行 C#程序,.Net Framework 是必须的,所以一般情况下我们都可以用 InstallUtil 命令来部署和卸载)。我以前做开发 Service 时碰到的一个问题是,当我用 InstallUtil 部署好一个 Service,但由于程序更新,需要卸载后重新部署,这个时候,就

7、出现用 InstallUitl /u 无法卸载的情况,具体的原因还不太明白,但是 MSDN 上说明了 InstallUtil 安装的时候是启用事务的,但是卸载的时候不启用事务,会不会是这个原因呢? 但是,这中情况下,我却可以用 sc delete 命令来卸载。有关 sc 命令的使用方法,sc /?:描述:SC 是用于与服务控制管理器和服务进行通信的命令行程序。用法:sc command service name .选项 的格式为 “servername”键入 “sc command“ 可以获得有关命令的进一步帮助命令:query-查询服务的状态,或枚举服务类型的状态。queryex-查询服务的

8、扩展状态,或枚举服务类型的状态。start-启动服务。pause-向服务发送 PAUSE 控制请求。interrogate-向服务发送 INTERROGATE 控制请求。continue-向服务发送 CONTINUE 控制请求。stop-向服务发送 STOP 请求。config-更改服务的配置( 永久) 。description-更改服务的描述。failure-更改服务失败时执行的操作。failureflag-更改服务的失败操作标志。sidtype-更改服务的服务 SID 类型。privs-更改服务的所需权限。qc-查询服务的配置信息。qdescription-查询服务的描述。qfailure

9、-查询失败时服务执行的操作。qfailureflag-查询服务的失败操作标志。qsidtype-查询服务的服务 SID 类型。qprivs-查询服务的所需权限。qtriggerinfo-查询服务的触发器参数。qpreferrednode-查询首选的服务 NUMA 节点。delete-(从注册表)删除服务。create-创建服务( 将其添加到注册表) 。control-向服务发送控制。sdshow-显示服务的安全描述符。sdset-设置服务的安全描述符。showsid-显示相应于假定名称的 SID 字符串。triggerinfo-配置服务的触发器参数。preferrednode-设置首选的服务

10、NUMA 节点。GetDisplayName-获取服务的 DisplayNameGetKeyName-获取服务的 ServiceKeyName。EnumDepend-枚举服务的依存关系。下列命令不要求服务名称:sc boot-(ok | bad) 指示是否将上一次启动保存为最近一次已知的正确启动配置Lock-锁定服务数据库QueryLock-查询 SCManager 数据库的 LockStatus示例:sc start MyService是否想参阅 QUERY 和 QUERYEX 命令的帮助? y | n :yQUERY 和 QUERYEX 选项:如果查询命令带服务名称,将返回该服务的状态。其

11、他选项不适合这种情况。如果查询命令不带参数或带下列选项之一,将枚举此服务。type= 要枚举的服务的类型 (driver, service, all)默认 = service)state= 要枚举的服务的状态 (inactive, all)(默认 = active)bufsize= 枚举缓冲区的大小(以字节计)(默认 = 4096)ri= 开始枚举的恢复索引号(默认 = 0)group= 要枚举的服务组(默认 = all groups)语法示例sc query - 枚举活动服务和驱动程序的状态sc query eventlog - 显示 eventlog 服务的状态sc queryex eve

12、ntlog - 显示 eventlog 服务的扩展状态sc query type= driver - 仅枚举活动驱动程序sc query type= service - 仅枚举 Win32 服务sc query state= all - 枚举所有服务和驱动程序sc query bufsize= 50 - 枚举缓冲区为 50 字节sc query ri= 14 - 枚举时恢复索引 = 14sc queryex group= “ - 枚举不在组内的活动服务sc query type= interact - 枚举所有不活动服务sc query type= driver group= NDIS - 枚

13、举所有 NDIS 驱动程序上面的用法都是来自系统 help, 具体使用很简单,试一试就 OK 了。Windows Service 是一种完全自定义控制的实现自动定时执行任务的方法,可以自定义的东西很多,灵活性很高,所以使用起来可能会比 Windows 任务计划程序稍微复杂一些,适合灵活度和扩张性要求高的情况。最后,我们简单介绍一些 SQL Agent 中 Job。SQL Agent 是 SQL Server 的一个服务之一,用之前,我们需要启动 SQL Agent Windows Service. 这个只适用于数据库方面的数据定时更新,定时发送邮件,等等与数据库相关任务,但是牵涉到桌面应用方面

14、的可能就无能为力了,这里不再多介绍了!总而言之,使用何种方法来实现任务的定时的按计划执行 ,需要根据具体的情况来定: 仅仅与数据库相关的,用 SQL Agent 不需要考虑太多灵活性和扩展性的,用 Windows 任务计划程序 灵活度高,需要考虑扩展应用(必须添加 Job,按照自定义方式执行 Job,. .),那我们可以选择 Windows Service接下来的文章,我会用一个比较简单的例子,介绍如何构建,部署 Windows Service! 企业管理器-管理-sql server(WINDOWS 平台上强大的数据库平台)代理-右键作业-新建作业-“常规 “项中输入作业名称-“步骤 “项-

15、新建-“步骤名 “中输入步骤名-“类型 “中选择“Transact-SQL 脚本 (TSQL)“-“数据库 “选择执行命令的数据库-“命令 “中输入要执行的语句:Update City Set IsAccess=0-确定-“调度 “项-新建调度-“名称 “中输入调度名称-“调度类型“ 中选择你的作业执行安排 -定为每天调度一次,时间为 18:40 即可-如果选择“ 反复出现“-点 “更改 “来设置你的时间安排然后将 SQL Agent 服务启动,并设置为自动启动,否则你的作业不会被执行设置方法:我的电脑-控制面板 -管理工具-服务- 右键 SQLSERVERAGENT-属性 -启动类型-选择“自动启动“-确定

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报