用PHP做订单系统。有订单定时过期的功能。也就是订单有失效期,到了失效期会执行一系列的业务逻辑。
这样的话就需要一个定时执行的机制。
运行在Linux操作系统上。
在crontab里面做每分钟定时执行的脚本,是可以的,但是因为好多时候都没有失效的订单,系统空转严重。有没有什么更好的方法。
比如Linxu启动一个系统服务器,可以通过http接口注册某个命令在指定时间被执行。
到时候这个服务器就自动把要求的命令执行了。有这样的计划任务服务器么?看到这么一个服务器,英文不够好。哪位帮忙鉴定一下。
http://en.wikipedia.org/wiki/JobScheduler谢谢了!

解决方案 »

  1.   

    我之前做了这么一个东西,不知道能不能合适我是有一堆定时任务,但是运行时间不一样,我是这样弄得,把不同时间的任务定义为一个参数,然后配置了一个数组,定义了每个任务的执行时间(按小时来的)
    $config['m_crontab_time'] = array(
    'fu' => array(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23), 
    'pn' => array(1,3,5),
    'fu_yesterday' => array(2),
    'post_yesterday' => array(3)
    );
    定时任务如下:
    0 */1 * * * cd /opt/website;/usr/local/php/bin/php -f index.php crontab 程序轮询  $config['m_crontab_time']   数组,获取当前时间看是否存在于时间数组中,如果存在,就往下执行,不存在就continue