• 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

  • 相关阅读:
    关于jquery
    关于jquery.bind
    iframe和form表单的target应用简单例子
    一个简单的进度条
    js库之art.dialog
    jquery的is用法
    关于$.getJson
    一篇介绍jquery中的ajax的结合
    一个很好介绍js的例子
    冒泡排序
  • 原文地址:https://www.cnblogs.com/breezesit/p/9175302.html
Copyright © 2020-2023  润新知