zoukankan      html  css  js  c++  java
  • 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:WindowsMicrosoft.NETFrameworkv4.0.30319

    > installutil XXX.exe

  • 相关阅读:
    温故而知新汇总贴
    温故而知新—heap
    温故而知新--hashtable
    温故而知新-set
    温故而知新——map
    温故而知新----stack
    找工作的时候我们改准备些什么
    js瀑布流布局
    js小游戏---智力游戏
    原生js完成拼图小游戏
  • 原文地址:https://www.cnblogs.com/breezesit/p/9175302.html
Copyright © 2011-2022 走看看