VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > Python基础教程 >
  • C#教程之SVN 定时 更新代码 Demo

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


相关教程