SVN 定时 更新代码 Demo
1. 涉及技術(shù):
Winservice: 用system身份后臺(tái)跑;? Quartz:定時(shí)任務(wù);? SVN?
2. 思路:
Quartz定時(shí)調(diào)用cmd 程序,執(zhí)行SVN update 命令,整個(gè)程序寄宿在Winservice
3. 步驟:
1)service 用local system賬戶安裝,通過(guò)Process 啟動(dòng)cmd 程序。
執(zhí)行核心代碼:?
? ? 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 定時(shí)執(zhí)行步驟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 管理員身份運(yùn)行
>? cd? C:\Windows\Microsoft.NET\Framework\v4.0.30319
> installutil XXX.exe
轉(zhuǎn)載于:https://www.cnblogs.com/breezesit/p/9175302.html
總結(jié)
以上是生活随笔為你收集整理的SVN 定时 更新代码 Demo的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 将训练集构建成ImageNet模型
- 下一篇: tornado-简介和原理