程序要实现
①设置过期会员状态为已过期
②设置被处罚到期的会员的状态为正常
③设置暂停服务到期的会员的状态为正常
④设置欠费会员状态为已欠费
四个共功能。原来的程序是这样的,每一个后台帐号登录的时候(在登录成功后的第一个页面),都会自动执行一次查询,查找已过期但是状态还是正常的、查找处罚到期但还没回复正常的、查找暂停服务到期但是还没回复正常的、查找已欠费但状态还是正常的会员,然后逐条设置。通常执行完需要3秒以上,非常没有效率,而且有时后台账号登录频繁,并且不会停留3秒钟以上。现在我有个想法,就是后台帐号登录的时候不再执行这个处理。而是改为会员每次登录的时候,都更新一次自己账号的状态。但是这样每个会员每次登陆的时候就至少要多查询4次数据库。如果同时登录的会员很多的话,我担心会造成资源紧张。请问大家有何高见。

解决方案 »

  1.   

    编写一个PHP文件,专门用于处理这类的问题!用linxu的定时任务cron 定时让PHP运行这个文件!搞定!
      

  2.   

    假如是windows怎么办?
      

  3.   

    没用过WINDOWS控制面板里的“定时任务”?
    不过不建议这样做,大忌。所有与应用有关的任务都应在应用内部完成,减少外部关联或依赖,否则将来维护会出意想不到的各种大麻烦。
      

  4.   

    老板倾向于自动化。我还是学习一下cron再说吧
      

  5.   

    没用过WINDOWS控制面板里的“定时任务”?
    不过不建议这样做,大忌。所有与应用有关的任务都应在应用内部完成,减少外部关联或依赖,否则将来维护会出意想不到的各种大麻烦。为什么是外部关联??这个PHP定时更新的文件不是包括在你的项目中吗?只不过一个是由apache或其他的程序 调用PHP执行任务!一个由系统进程调用PHP执行任务!有何不妥?大webgame中如果不用定时任务,有些东西,实在是没有办法实现!你认为呢?我也没有用过WINDOWS 的计划任务,不过windows确实有这个功能可以实现,以bat的方式,当然也可以用vbs实现(不会弹出dos窗口)
      

  6.   

    没用过WINDOWS控制面板里的“定时任务”?
    不过不建议这样做,大忌。所有与应用有关的任务都应在应用内部完成,减少外部关联或依赖,否则将来维护会出意想不到的各种大麻烦。为什么是外部关联??这个PHP定时更新的文件不是包括在你的项目中吗?只不过一个是由apache或其他的程序 调用PHP执行任务!一个由系统进程调用PHP执行任务!有何不妥?大webgame中如果不用定时任务,有些东西,实在是没有办法实现!你认为呢?我也没有用过WINDOWS 的计划任务,不过windows确实有这个功能可以实现,以bat的方式,当然也可以用vbs实现(不会弹出dos窗口)
    照你这么说,一个由外国政府控制的内部间谍也没问题呗?
    虽然这么比喻并不合适,但问题不在于你这个执行文件在哪里(笑话,如果操作系统为你的这个应用写了一个属于它的而不是你的调用机制,你觉得可能吗?),而就是说是由谁发起调用的。
    关于我说的你那样做将来会有什么问题,只能说你太没有经验而意识不到。如果这是你自己的问题,你尽可以冒险这样做。但建议你还是多静心思考思考,不要盲目排斥自己还不能理解的知识和经验。
      

  7.   

    连WINDOWS的Task Scheduler都不知道?你还真是十足的LINUXER,对WINDOWS这么不熟啊。不过这样的人一般都该是比较厉害的。
    但你依赖外部的定时任务,这个思维实在太危险了,而且还负责大WEBGAME,真替你担心,不过好在国内的技术气氛现在都不怎样。