最近在一個專案中因客戶要求數據能夠自行導入導出,本來這個是准務用SQL那個自帶的排程的,但TMD客戶不要,要求一定在WEB上可以設置,啟動。這不郁悶,得靠自己寫了,開始在網上找這方面的資料,TNND不知咱搞的沒找到氣憤(大概是我不會找資料吧,沒讀過研,哈哈自我安慰下);
經過幾天的瞎忙,終於完成了,自己也試了下可以運行,速度應在自己機子上試的沒感覺,哈哈
至少導入導出這裡就不說了,那個相信都家都玩過,這幾天想的排程有兩種方案可以實現,具體不知道對不對,反正是自己瞎搞的,如有知道windows的那個排程或sql的那個排程是怎樣實現的或有做過這方面的例子的
歡迎一起討論:
方案一:
  1. 其排程的XML檔

工作排程<?xml version="1.0" encoding="utf-8" ?> 
工作排程
<Root>
工作排程    
<Assignments>
工作排程        
<!--
工作排程             一條排程信息:
工作排程                id : 排程標識(唯 一)
工作排程                startDate : 排程啟動日期
工作排程                endDate : 排程結束日期
工作排程                type : 排程執行方式;Month:按月執行;Week:按周執行;Day:按天執行
工作排程                execute : 排程所執行的方法
工作排程         //
-->
工作排程        
<Assignment id="Ass1" startDate="2005-09-01" endDate="2005-10-01" typeName="Month" execute="EArtService.Output.OutputXml()">
工作排程            
<!--    執行月     //-->
工作排程            
<Months>
工作排程                
<!-- id表示月份;type表示執行方式:Week為按周執行,Day按天執行 //-->
工作排程                
<Month id="1" typeName="Week" />        <!-- 第一月 //-->
工作排程                
<Month id="2" typeName="Week" />
工作排程                
<Month id="3" typeName="Week" />
工作排程                
<Month id="4" typeName="Week" />
工作排程                
<Month id="5" typeName="Day" />
工作排程                
<Month id="6" typeName="Day" />
工作排程                
<Month id="7" typeName="Day" />
工作排程            
</Months>
工作排程            
<!-- 執行周    //-->
工作排程            
<Weeks>
工作排程                
<!-- id=0為每周都執行 //-->
工作排程                
<Week id="0" >
工作排程                    
<Day id="1" />        <!--星期一 //-->
工作排程                    
<Day id="2" />
工作排程                    
<Day id="3" />
工作排程                    
<Day id="4" />
工作排程                    
<Day id="5" />
工作排程                    
<Day id="6" />
工作排程                    
<Day id="7" />
工作排程                
</Week>
工作排程                
<!-- id=1為第一周 //-->
工作排程                
<Week id="1" >
工作排程                    
<Day id="1" />
工作排程                
</Week>
工作排程                
<Week id="2" ></Week>
工作排程                
<Week id="3" ></Week>
工作排程                
<Week id="4" ></Week>
工作排程            
</Weeks>
工作排程            
<!-- 執行天 //-->
工作排程            
<Days>
工作排程                
<Day id="0" />  <!-- 每月最後一天//-->
工作排程                
<Day id="1" />
工作排程                
<Day id="10" />
工作排程                
<Day id="20" />
工作排程            
</Days>
工作排程            
<!-- 執行小時    //-->
工作排程            
<Hours>
工作排程                
<Hour id="1" />
工作排程                
<Hour id="23" />
工作排程            
</Hours>
工作排程            
<!-- 執行分鐘    //-->
工作排程            
<Minutes>
工作排程                
<Minute id="1" />
工作排程                
<Minute id="59" />
工作排程            
</Minutes>
工作排程            
<!-- 排程其它信息 //-->
工作排程            
<Delail>
工作排程                
<path></path>
工作排程            
</Delail>
工作排程        
</Assignment>
工作排程    
</Assignments>
工作排程
</Root>
工作排程

 2. 排程的類文件
  

工作排程using System;
工作排程
using System.Xml;
工作排程
using System.Threading;
工作排程
using System.Reflection;
工作排程
工作排程
工作排程
namespace DBEntryTest

以上代碼就不明細說明瞭,上面的注解我想說得差不多可以理解了吧

這個排程的工作原理,有點例似於Socket的監聽吧,所以我叫它監聽排程
所用到的技術(委託,線程,反射)

 3. 工作流程圖
工作排程

方案二
   因那個專案客戶還沒驗收,等驗收後再拿來羨丑了(工作原理:只是多了個按下次執行日期來算的)

 
   哪位感興趣的朋友,如了解排程算法的可以一起研究下,最好是教我:)O

相关文章:

  • 2021-08-20
  • 2022-02-02
  • 2021-06-28
  • 2021-09-08
  • 2022-01-08
  • 2021-10-14
  • 2022-02-07
  • 2021-11-01
猜你喜欢
  • 2022-12-23
  • 2021-05-07
  • 2021-11-06
  • 2022-03-04
  • 2022-12-23
  • 2022-12-23
  • 2021-09-21
相关资源
相似解决方案