首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >构建应用程序以在服务器上定期执行任务

构建应用程序以在服务器上定期执行任务
EN

Stack Overflow用户
提问于 2010-07-12 22:16:30
回答 5查看 309关注 0票数 0

我正在寻找关于我正在构建的这个小系统的整体架构的一些指导。

目前,我有一个通过xcopy部署(和更新)到一些服务器的应用程序。这可以很好地更新代码,但不能很好地更新代码的执行周期,因为它被设置为windows计划任务,每小时运行一次。xcopy替换运行得很好,因为我可以从本地计算机运行更新,并将新的exe文件推送到所有服务器。在接下来的一个小时,任务调度程序将运行新的exe。

我想把它改成这样工作。

我的应用程序作为Windows Service运行,并使用System.Threading.Timer等待给定的持续时间,然后执行代码。这样,进程的一部分可以检查数据库,并在必要时减少给定服务器的执行周期。

这里的问题是,由于.exe将作为服务运行,它不允许通过xcopy轻松升级,因为该文件将一直在使用。

有什么想法我应该如何设置,以便能够进行简单的xcopy更新,同时作为一个windows服务运行?这有可能吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-07-27 14:53:40

我最终使用了一点@Decker97的解决方案,再加上一些powershell的魔力:)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function global:new-process()
{
    param ([string]$computer, [string]$commandline=$(throw "Command line required."))

    $path = "\\$computer\root\cimv2:Win32_Process"
    $mc = new-object System.Management.ManagementClass $path

    $cmdargs = $commandline,$null,$null,0

    $ret = $mc.InvokeMethod("Create", $cmdargs)
    if ($ret -eq 0) {
        write-host "Created Process ID: $($cmdargs[3])"
    }
    else {
        write-host "Error $ret creating process."
    }

    $mc.Dispose()
}

$serverNames = Get-Content C:\temp\servers.txt

foreach ($server in $serverNames) 
{   
    write-host Updating $server

    c:\windows\system32\sc.exe \\$server STOP Service

    $source = "C:\Projects\Service\bin\Debug"
    $dest = "\\" + $server + "\C$\Program Files\TargetFolder\TargetFolder"
    ROBOCOPY.exe $source $dest /MIR /W:5 /R:1

    new-process $server 'c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Installutil.exe /i  /LogFile=install.out "C:\Program Files\TargetFolder\TargetFolder\serviceExecutable.exe"'

    c:\windows\system32\sc.exe  \\$server START Service
}

该脚本使用服务控制来尝试停止服务。

然后,它使用robocopy将文件复制到服务器。

然后使用WMI和Powershell在服务器上远程调用"installutil“。

然后使用服务控制来启动服务。

票数 0
EN

Stack Overflow用户

发布于 2010-07-12 22:23:54

您可以停止服务,然后复制文件,然后从批处理文件启动服务:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SET SOURCEDIR=\\coastappsdev\wwwroot\ClearTrac\Setup\03_Staging\ClearTracAutoSend\bin
SET SERVICE_HOME=C:\INETPUB\WWWROOT\ClearTracAutoSend
SET SERVICE_EXE=ClearTracAutoSend.exe
SET INSTALL_UTIL_HOME=C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727


:STOP THE SERVICE:
SC \\targetServer STOP ClearTracAutoSend

:COPY THE FILES:
MD %SERVICE_HOME%
XCOPY %SOURCEDIR%\*.* %SERVICE_HOME%\*.* /E /R /Y

set PATH=%PATH%;%INSTALL_UTIL_HOME%

cd %SERVICE_HOME%

echo Uninstalling AutoSend Service...
installutil /u %SERVICE_EXE%

cd %SERVICE_HOME%

echo installing AutoSend Service...
installutil /i %SERVICE_EXE%

:START THE SERVICE:
SC \\targetServer ClearTracAutoSend

pause

这可能不是远程的最佳解决方案,我不知道如何远程运行installutil。我们通过RDP连接到服务器并运行批处理文件。

票数 2
EN

Stack Overflow用户

发布于 2010-07-12 22:35:04

如何将更新代码移出服务,简单地检查下一次迭代的时间到它自己的程序集中。在每次运行之前动态加载它,然后卸载它。我还想知道Quartz.net对您是否有用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3232711

复制
相关文章
在 Microsoft 云上构建应用程序
Microsoft 云包括了Azure、Power Platform、Microsoft 365、GitHub、Dynamics 365 等,虽然许多企业应用程序开发领导者了解在 Azure 上创建应用程序的价值,但事实是您可以将整个 Microsoft 云作为应用程序平台. 有一篇文章:在 Microsoft 云上构建应用程序 从应用程序开发角度介绍了 Microsoft 云的大局,重点介绍领导者必须执行的操作才能取得成功。
张善友
2022/05/31
8390
在 Microsoft 云上构建应用程序
在PaaS上构建SaaS应用程序时先搞清这些
遗留系统含有成千上万个执行一大批业务功能的服务组件。比如说,假设贵企业运行的一个内部遗留系统中的一套组件向企业高管提供一份统计报告。为了赶在截至日之前获得这份每周提交的报告,该高管应该考虑将必要的组件迁移到新的软件即服务(SaaS)应用程序。 如果经济可行性研究表明这种迁移是明智的决策,他应该与其他高管以及由开发人员、系统工程师和业务分析人员组成的一个团队合作,将遗留系统细分成多个组件,然后着手开发那个应用程序。 1、识别遗留系统资产 开发团队、高管和遗留系统负责人需要识别遗留系统的资产。这些资产包括如下:
静一
2018/03/21
1K0
在 Azure 上构建和部署云原生应用程序和容器化应用程序
在 Azure 上有许多选项可供团队构建和部署云原生应用程序和容器化应用程序。不存在适合每个用例和每个团队的完美解决方案。
张善友
2022/03/30
1.2K0
在 FreeDOS 上使用 BAT 文件自动执行任务 | Linux 中国
即使你以前没有使用过 DOS,你也可能知道它的命令行 shell,即 COMMAND.COM。它已经成为 DOS 的同义词,FreeDOS 为此也实现了一个类似的 shell,称为 “FreeCOM”,但也命名为 COMMAND.COM,就像在其他 DOS 系统上一样。
用户1880875
2021/11/15
2.1K0
在 Ubuntu 17.10 上安装 AWFFull Web 服务器日志分析应用程序
AWFFull 是基于 “Webalizer” 的 Web 服务器日志分析程序。AWFFull 以 HTML 格式生成使用统计信息以便用浏览器查看。结果以柱状和图形两种格式显示,这有利于解释数据。它提供每年、每月、每日和每小时的使用统计数据,并显示网站、URL、referrer、user agent(浏览器)、用户名、搜索字符串、进入/退出页面和国家(如果一些信息不存在于处理后日志中那么就没有)。AWFFull 支持 CLF(通用日志格式)日志文件,以及由 NCSA 等定义的组合日志格式,它还能只能地处理这些格式的变体。另外,AWFFull 还支持 wu-ftpd xferlog 格式的日志文件,它能够分析 ftp 服务器和 squid 代理日志。日志也可以通过 gzip 压缩。
星哥玩云
2022/07/13
8320
在 Ubuntu 17.10 上安装 AWFFull Web 服务器日志分析应用程序
Web 上构建MDI 应用程序---Prototype Window Class
      今晚在网上看到一个非常酷的JS框架Prototype Window Class。Web开发者通过Prototype Window Class便可以轻松地在网页上构建各式各样的窗口(Window or Windows)。而且Prototype Window Class的文件很完整,使用起来应该不会有太大困难,再加上Sample网页有几个例子很吸引我,很简单就可以做出类似HEMiDEMi或是Netvibes的登入效果,对我这种懒人而言,不需要多研究什么东西就可以完成一件事情是多好的事情!而且是开源的
张善友
2018/01/26
7360
在DigitalOcean的服务器上用官方Kali镜像构建系统
DigitalOcean是一家类似于AWS,Microsoft Azure,Google Cloud Platform等的云提供商。他们提供不同的Linux发行版实例,这些实例被称之为“droplets”。与AWS类似,DigitalOcean在世界各地都有数据中心,甚至在有的国家拥有多个数据中心。
FB客服
2019/07/29
1.7K0
在Cloudflare Pages上构建应用
目前Cloudflare Pages处于测试阶段,可以在 pages.cloudflare.com 中申请Cloudflare Pages的试用资格。
用户1316967
2022/01/18
1.9K0
在Cloudflare Pages上构建应用
在Windows上以服务方式运行 MSOPenTech/Redis
ServiceStack.Redis 使用教程里提到Redis最好还是部署到Linux下去,Windows只是用来做开发环境,现在这个命题发生改变了,在Windows上也可以部署生产环境的Redis,这都要感谢微软的开放,把Redis在Windows上的环境给我们搞定了,最新的版本已经支持64位了。那么Redis在32位上的存储能力受限于可用的地址空间,也就是3GB。 要在Windows上运行64位Redis ,可以从https://github.com/MSOpenTech/redis 获取一份Redis
张善友
2018/01/29
1.4K0
在Windows上以服务方式运行 MSOPenTech/Redis
我们在未来会怎样构建Web应用程序?
作者 | Stepan Parunashvili 译者 | 王强 策划 | 万佳 在未来,我们会怎样构建 Web 应用程序呢? 如果行业正常发展下去的话,那么今天我们认为很难、做起来很有价值的事情在明天都会变得很轻松普遍。我想我们会发现很多新的抽象,让 Google Docs 写起来也能像今天的普通 Web 应用一样简单。 这就引出来一个问题——这些抽象会是什么样子?我们今天能发现它们吗?想要找出答案,一种方法是审视我们在构建 Web 应用程序时必须经历的所有问题,然后看看我们能做些什么。 亲爱的读者,这
深度学习与Python
2023/04/01
10.1K0
我们在未来会怎样构建Web应用程序?
Spark 在Yarn上运行Spark应用程序
在 YARN 中,每个应用程序实例都有一个 ApplicationMaster 进程,该进程是为该应用程序启动的第一个容器。应用程序负责从 ResourceManager 上请求资源。一旦分配了资源,应用程序将指示 NodeManagers 启动容器。ApplicationMasters 消除了对活跃客户端的依赖:启动应用程序的进程可以终止,并且从在集群上由 YARN 管理的进程继续协作运行。
smartsi
2019/08/07
1.9K0
在 WASI 上运行 .NET 7 应用程序
WASI代表 WebAssembly 系统接口,WASI 让沙盒化的 WebAssembly 应用程序通过一系列类似 POSIX 的函数访问底层操作系统,允许独立于浏览器运行 WebAssembly 代码。这是一个高度实验性的项目,但同时也是一个非常有趣的项目,并且有可能为行业的大规模编程范式转变做出贡献,使 WebAssembly 真正无处不在。
张善友
2022/04/28
1.4K0
在 WASI 上运行 .NET 7 应用程序
在 FPGA 上快速构建 PID 算法
《优秀的IC/FPGA开源项目》是新开的系列,旨在介绍单一项目,会比《优秀的 Verilog/FPGA开源项目》内容介绍更加详细,包括但不限于综合、上板测试等。两者相辅相成,互补互充~
碎碎思
2022/11/14
1.4K0
在 FPGA 上快速构建 PID 算法
在以太坊上构建 GraphQL API
dapp[5]的数量继续爆炸性增长,对开发人员(使用 Solidity[6]或其他区块链语言的)的需求[7]也越来越大。
Tiny熊
2021/06/10
1.8K0
在以太坊上构建 GraphQL API
在CentOS 6.5上构建Apache Thrift
从最小的安装开始,需要以下步骤来在Centos 6.5上构建Apache Thrift。 本示例使用当前的开发主分支从源代码构建。 这些说明也应适用于从0.9.2开始的Apache Thrift发行版。
ccf19881030
2020/05/09
9880
利用IBM云功能构建无服务器应用程序
利用IBM云功能构建无服务器应用程序
Techeek
2018/01/08
3.6K0
利用IBM云功能构建无服务器应用程序
使用IBM云功能构建无服务器应用程序
Shedray大数据专栏
2018/01/08
7.5K0
Java并发之ScheduledThreadPoolExecutor在Executor中延时执行任务在Executor中周期的执行任务
ScheduledExecutorService类顾名思义,就是可以延迟执行的Executor。如果,对于某些任务,我们并不想马上执行,而是想让任务过一段时间后才执行,或者让任务进行周期性执行。我们就可以采用ScheduledExecutorService类。
desperate633
2018/08/22
1.7K0
使用IBM云功能构建无服务器应用程序
在 Serverlessconf上,IBM 发布了IBM Cloud Functions的一项新功能(作为一个IBM研究预览展示)。通过使用新工具Composer,可以比使用原有action sequences更加灵活的创建包含多个云功能的应用程序。并实现这些应用程序的协调操作与数据流的调用。
Drake
2018/01/11
6.8K0
在Windows Mobile上隐藏你的应用程序
    有时候,我们需要在Windows Mobile上做一些invisible的应用程序,使得用户无法察觉。这几天找了一些资料,请教了Jake等一些朋友,下面就做一个简单的总结。 1. 如何逃脱“任
ShiJiong
2018/01/10
1.2K0
在Windows Mobile上隐藏你的应用程序

相似问题

在Java中定期执行任务

25

定期使用芹菜执行任务

22

使用python库定期执行任务

24

Celerybeat -使用Django定期执行任务

11

使用while(true)定期执行任务

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文