1. 涉及技术:

Winservice: 用system身份后台跑;  Quartz:定时任务;  SVN

2. 思路:

Quartz定时调用cmd 程序,执行SVN update 命令,整个程序寄宿在Winservice

3. 步骤:

1)service 用local system账户安装,通过Process 启动cmd 程序。

执行核心代码:

string path = ConfigurationManager.AppSettings["localPath"].ToString();

string username = ConfigurationManager.AppSettings["username"].ToString();

string password = ConfigurationManager.AppSettings["password"].ToString();

Process p = new Process();
ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.UseShellExecute = false;
startInfo.RedirectStandardInput = true;
startInfo.RedirectStandardOutput = true;
startInfo.FileName = @"cmd.exe ";
//startInfo.Arguments = " /c svn update " + path + " --username mashenghao --password mashenghao ";
p.StartInfo = startInfo;
p.Start();
p.StandardInput.WriteLine("svn update " + path + " --username " + username + " --password " + password + " &exit ");
p.StandardInput.AutoFlush = true;
string output = p.StandardOutput.ReadToEnd();
p.WaitForExit();
p.Close();

2) Quartz 定时执行步骤1)

ISchedulerFactory fact = new StdSchedulerFactory();
IScheduler sche = fact.GetScheduler();
sche.Start();
IJobDetail detail = JobBuilder.Create<AutoUpdateQuartzJob>()
.WithIdentity("SVNAutoUpdate", "SVNAutoUpdate")
.Build();
ITrigger trigger = TriggerBuilder.Create()
.WithIdentity("SVNAutoUpdateTrigger", "SVNAutoUpdateTrigger")
.StartNow()
.WithSimpleSchedule(x => x.WithIntervalInSeconds(15).RepeatForever())
.Build();
IJobListener listener = new AutoUpdateQuartzJobListern();
sche.ScheduleJob(detail, trigger);
3) 安装winservice

cmd 管理员身份运行

>  cd  C:\Windows\Microsoft.NET\Framework\v4.0.30319

> installutil XXX.exe

转载于:https://www.cnblogs.com/breezesit/p/9175302.html

SVN 定时 更新代码 Demo相关推荐

  1. 离线用户召回定时更新

    3.6 离线用户召回定时更新 学习目标 目标 知道离线内容召回的概念 知道如何进行内容召回计算存储规则 应用 应用spark完成离线用户基于内容的协同过滤推荐 3.6.1 定时更新代码 完整代码 im ...

  2. MacOS苹果系统自带SVN:提交代码与获取更新

    内容导入SVN服务端 1)打开[终端] 2)输入命令[svn import ~/Documents/svn_client svn://localhost/demo --username=dave -- ...

  3. eclipse中使用svn提交,更新代码。

    在新公司工作,版本管理工具变成了svn,之前一直用git作为版本管理,用的编辑IDE是IntelliJIDEA,在这个编辑器下工作,还是很方便的,但是现在使用eclipse和svn.有点不习惯,但还是 ...

  4. IDEA中SVN未提交代码,更新时有冲突接受其它怎么办

    场景 本地有未提交代码,更新代码时提示有冲突,没有选择合并,而是选择接受它们的. 实现 此时通过svn 的查看历史版本无法查看本地的版本. 选择文件右键--Local History --Show H ...

  5. 解决SVN提交和更新代码冲突?

    解决SVN提交和更新代码冲突? 解决冲突有三种选择: 1.放弃自己的更新,使用svn revert(回滚),然后提交.在这种方式下不需要使用svn resolved(解决) 2.放弃自己的更新,使用别 ...

  6. svn更新代码提示“系统找不到指定路径”

    在使用svn时,更新代码是出现: clean up failed to process the fallowing......"系统找不到指定路径" 根据上一句话可以查到是因为更新 ...

  7. SVN使用:更新代码不成功导致SVN被锁定的解决方法

    前言 作为程序员来说,在团队开发过程中关于代码管理的工具使用并不陌生,比较常用的代码合并管理工具如:Git.SVN等,虽然相关工具的使用并不复杂,但是还是要掌握常用的使用方法.本篇博文就来分享一下在S ...

  8. 2021-02-13-idea使用svn检出代码和更新上传代码

    idea使用svn检出代码和更新上传代码 前言 整合 检出(跟导入一个意思)项目代码 更新上传代码 前言 一般,进入公司开发一个项目,你的领导一般会给你一个svn的链接和账号密码 你只需要学会从svn ...

  9. AirSim学习和踩坑记录(不定时更新)

    版权声明:本文为博主原创文章,遵循Creative Commons - Attribution-ShareAlike 4.0 International - CC BY-SA 4.0版权协议,转载请附 ...

最新文章

  1. 视觉SLAM开源算法ORB-SLAM3 原理与代码解析
  2. Android ListView 横向滑动删除 Item
  3. 【机器学习实战】意大利Covid-19病毒感染数学模型及预测
  4. 概率论-2.6 随机变量函数的分布
  5. 阿里最新面试必备项之Java的String类,持续更新中!
  6. 软件工程 敏捷的酒后问答
  7. 对无线编码缓存的一些理解
  8. Java基础知识小杂库
  9. spring boot 教程(四) 统一异常处理
  10. [2019.2.28]BZOJ4033 [HAOI2015]树上染色
  11. 项目接力:售前、售中、售后
  12. 计算机逻辑判断函数函数知识点,逻辑判断函数
  13. ftm模块linux驱动,飞思卡尔K60 FTM模块详解【二】
  14. 什么原因导致LED发光二极管的光衰?
  15. 30款Linux 高性能网络开发库开源软件
  16. 2021.9.15 每日总结
  17. PHP的OpenSSL加密扩展学习(三):证书操作
  18. pyecharts--地图
  19. 江苏诚迈科技笔试题2013
  20. Java编程思想日志

热门文章

  1. python操作数据库
  2. 算法笔记_163:算法提高 最大乘积(Java)
  3. 调了 好几天的问题 treeview 的js 处理复选框之间的关系,选中子框父框自动选中,单独执行 没问题 放到框架页里 就有问题...
  4. [导入]C#好书盘点【月儿原创】
  5. 任意门怎么用团发_平开门、推拉门都out了!衣柜门这样设计,实用方便又大气!...
  6. php7 对象转数组,php7中为对象/关联数组进行解构赋值
  7. AUTOSAR从入门到精通100讲(二十七)-DoIP远程诊断及与UdsOnCan的比较
  8. 深度:抖音本地生活服务的真相
  9. 产品经理思维模型:新的增长黑客模型RARRA
  10. 10g添加用户 oracle_oracle 10g中如何创建用户