一个web项目,mvc开发的,前台报表模块已经做好了,现在就差每天凌晨往数据库里插入一条统计信息。以前都是直接在数据库里直接写个作业做统计,现在不允许这样做了现在情况就是:web项目中的一个service组件已经把每天如何统计信息写好了,问题就是:我该如何在固定时间触发这个方法呢?(ps:想用个timer,Application_Start启动那个timer,到点就调用一下service中的方法,可感觉像是打酱油的,求思路……)Web日常自动统计求思路

解决方案 »

  1.   

    像这类计算统计的工作,最好就应该交给数据库层做(job),但是你又不允许。而且你都已经限制死了,web项目里面有service组件,那你说呢?
      

  2.   

    windows service托管wf工作流。
      

  3.   

    反正直接放在web application是肯定不行的。
      

  4.   

    恩  再写一个 windows service 
      

  5.   

    用IIS数据包 和 Sql 代理  每天定时执行
      

  6.   

    为何不能放在web层^_^。思维上有误区。
    1. 首先放在web层可以与web同一生命周期,其次可以共享web的配置信息。
    2. 如果放在中间层或数据库,那更多的是为了功能上的隔离。所以,为了有效保证信息的封装,应该将JOB的调用简单化。如果放在web层,可以application_start上启动timer,完全正确。但timer不如启动thread。使用线程更容易控制周期。其次,IIS的AppPool有生命周期,定期会回收,网站无人请求会回收,所以,要有一个机制保证forever运行网站。只要网站是长期运行,在website上定时JOB完全work,且是非常好的选择。
      

  7.   

    用 Quartz.net 可以实现。
      

  8.   

    我现在项目里面使用的调度系统就是基于:Quartz.net 
    我推荐你使用这个。
      

  9.   

    或者你写成一个一次的exe程序然后用dos 的 at 命令来执行。