码迷,mamicode.com
首页 > 其他好文 > 详细

vs widows服务的开发

时间:2015-06-24 16:14:09      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:

最近再做一个视频管理系统,发现用户提交时实时转换视频非常慢。于是有了通过建立一个单独的服务。通过服务定时查询数据库,是否有需要转换的视频来解决问题。现把过程记录下来,已供参考

1、新建widows 服务项目

  技术分享

2、增加查询定时器在服务启动时

  protected override void OnStart(string[] args)
        {
        // 单位为毫秒
         System.Timers.Timer timer = new System.Timers.Timer(1000);
         
          timer.AutoReset = true;  
 
         timer.Enabled = true;

         timer.Elapsed += timer_Elapsed;  
 
          timer.Start();  


        }

3、通过Timer的Elapsed事件处理定时任务

 

 void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
        {    // 加载外置配置文件
                  // path为系统目录下system32目录
               string path = Environment.CurrentDirectory;
                XmlDocument xml = new XmlDocument();
          
                xml.Load(path + "\\videoconvertconfig.xml");
                XmlNode rootNode = xml.SelectSingleNode("root");
                ///得到视频网站路径
                string basePath = rootNode.Attributes["path"].Value;
                string sqlConn = rootNode.Attributes["sqlConn"].Value;
                //得到ffmpeg的路径
                string ffmpegPath = rootNode.ChildNodes[0].Attributes["path"].Value;

            try
            {
                using (SqlConnection conn = new SqlConnection(sqlConn))
                {
                    conn.Open();
                    SqlDataAdapter data = new SqlDataAdapter("select videoaddress,id from viedoList where isconvert=0", conn);
                    DataSet ds = new DataSet();
                    data.Fill(ds);
                    DataTable VideoList = ds.Tables[0];
                    VideoConvert vc = new VideoConvert();
                    foreach (DataRow dr in VideoList.Rows)
                    {
                      // 视频转换
                        vc.convertVideo(basePath, ffmpegPath, dr[0].ToString()); 
                     //  转换成功 更新数据库
                        updateData(conn,dr[1].ToString());
                    }
                }

            }
            catch (Exception err) { Common.WriteFile(basePath+"/log/log.txt", err.Message); }
        }

  

vs widows服务的开发

标签:

原文地址:http://www.cnblogs.com/fogwang/p/4597873.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!