情况是这样子的
我在服务器上面跑一个脚本A,去处理缓存中的数据,为了不重复处理,所以没有选择使用crontab启动,而是写在了while里面20秒跑一次
在脚本A里面引用了class i,class o,class p等类处理对应类型的数据
由于脚本A这个进程是不中断一直在跑的,但是只有在启动的时候才会把各个class文件include进来,这样导致了我每一次更新class文件都要去把脚本A这个进程重新启动一遍
想请教各位大神,有没有办法是让脚本A在每次循环或者是调用到class的时候,能调用到最新的那个class文件?
小白拜谢

解决方案 »

  1.   

    你可以用 exec 再启动一个 php
    也就是将循环内的业务代码分离出来,由新的 php 进程执行
      

  2.   

    这样做从效果上看确实可行,不过对系统的开销会不会有点大?因为用的是框架,如果每次都重新启动一个php,等于是中间又加载了好多其实没必要重新加载的文件,还有没有别的方法呢?
      

  3.   

    这与框架有什么关系?现在不是都流行 fastcgi 吗?在此模式下,本身就要对每个 http 请求启动一个 php 的
    每 20 秒才启动一个 php 执行业务逻辑(执行完就撤)能有都少开销呢?在 web 方式下,假定并发数为 200,那么就可能在每秒钟启动 200 个 php。你为何又不担心效率了呢?
      

  4.   

    因为我这个是在后台跑的脚本,不是接口啊……而且如果用exec去执行的话,我要拿到他的执行结果好像也很麻烦额……
      

  5.   

    那不一样吗?exec 也有返回值
      

  6.   

    更新了class要重新执行很正常。除非重新new