日期:2014-05-17  浏览次数:20705 次

WINFORM 定時上傳如何驗證文件已存在問題
一個WINFORM模塊,需定時每晚10點上傳文件至FTP服務器

現使用了Timer計時器

在計時器中,判斷如果時間到達10點或者超過10點,則開始生成報表并上傳文件
if (dtNowTime > Convert.ToDateTime("22:00") && bStart == false)
            {
                bStart = true;
                this.getReport();
            }
現在有個問題

就是如何判斷當天報表已上傳至服務器

因為如果計時器頻繁訪問服務器,會造成服務器負擔過重

還有一個問題,計時器頻率設置為多少合適,若太頻繁也會導致負載過重


求個思路

------解决方案--------------------
做个文件记录上传记录不就知道是否上传过吗
------解决方案--------------------
计时器的时间间隔设计多大,需要根据你的判断
dtNowTime > Convert.ToDateTime("22:00")

因果是有判断到分钟的话,那就是Interval 为1 分种,不然,这个判断就有可能很跳。

如果是判断到小时的候那就可以设置大一点。

Interval 设计的大小应该对程序性能影响没有多大关系,关键还是在

dtNowTime > Convert.ToDateTime("22:00")这一句 之后,执行的任务的长短才会有影响了。



------解决方案--------------------
没上传完一个文件,本地记录一下,当然为了方便,还可以在都上传完毕后,将最终上传列表,发至服务器一份,这样可以随时随地,下载这个文件,来判断都有哪些文件已经上传
------解决方案--------------------
客户上传文件到服务端
可以根据服务端文件名称是否重复进行判断。
1.重复不上传或者重复覆盖两个方式。
2.2楼的也是一种方案。