C/S结构的客户端程序
以前数据在后台数据库中
定时做一些统计任务,将统计任务的结果写入到数据库中,统计任务是由后台crontab定时任务来实现。现在客户要求可以随时修改统计周期,比如说以前的统计是固定统计每天的零点到零点的数据,所以定时任务就就定在每天的凌晨一点钟统计。现在想任意修改成比如说八点到八点的数据等等类似的。请问用户在界面更改统计周期后,如何让后台统计的时间也跟着改变呢?

解决方案 »

  1.   

    你说的到底是windows的计划任务还是linux的crontab
    难道还有mono...
      

  2.   

    我没太明白你的意思:
    linux上有个crontab,还有个java程序,java根据crontab里的时间定时运行
    还是说,linux上有个mono的c#程序,也是根据crontab去定时执行
    它们的执行和修改crontab有什么关系?定时时间改了它们自然就按新的时间执行啊?
    另外你的client程序在哪?在干嘛?
      

  3.   

    是这样的
    linux上有个crontab,这个crontab每天凌晨一点执行一个jar程序,而这个jar程序就是做一些统计任务现在客户想通过客户端修改这个定时任务执行的时间,比如哦说我现在不是要统计零点到零点的了,我要统计八点到八点的数据了,那么就要修改后台的统计任务。首先JAR程序的统计时间要从零点到零点改为八点到八点,crontab任务的执行时间要从凌晨一点改成九点。客户端安装在客户的PC上,可以连接到后台服务器端,客户端是用C#写的一个C/S界面
      

  4.   

    这个没办法,首先你已经跨平台,jar也好c也好,不管什么,它们在你那个环境里依靠crontab来定时执行
    你无法修改linux上的crontab,不是完全不能实现,如果你真的要这么做,你得先拿到root,再登陆到linux,再修改crontab,以前我们更新linux代码时,因为机器很多,需要一台台的登陆,然后去改,非常麻烦,我曾经尝试写一个工具,类似crt,批量连接后批量通过svn更新程序,但是我水平有限,很难你说的这个问题有一个办法:
    crontab里定义一个定时,每格1分钟执行一次,比如叫mycrontab.jar 这个java程序,它的主要功能就是取得mysql里某表的数据,而这个表里存放的就是需要执行的其他程序和时间这样你的clinet就可以连到mysql去修改需要执行的程序和时间,但是如果这台linux你不能控制,而客户也不允许这么做,我觉得没什么其他办法了