在linux下需要每5分钟执行一次某个php脚本,但是这个脚本可能在5分钟之内执行不完,那我就需要判断这个脚本是否正在执行,如果在执行那就不在重复执行他,等到下一个5分钟后在去执行,依此类推。怎么实现?

解决方案 »

  1.   

    比较困难,cli方式的 php 都在独立的进程中运行
    你或许建一个文件,保存程序欲行的进度信息。程序没找到这个文件就不执行,找到后就读取并删除这个文件。程序结束时,将信息写入
      

  2.   

    迂回的
    用memcache 写个数值
    执行前先判断是否存在 存在则不运行 不存在则运行
    思路而已,当然更简单就是创建个文件,判断文件是否存在,像老大说的。
      

  3.   

    启动后检查pid文件,kill(0)检查进程存活,不存活则启动并覆盖写pid文件。
      

  4.   

    提供个不是很成熟思路你自己试着去实现你可以在要执行的脚本之前加一段代码,功能是在数据库记录下某个字段值为 runing,
    在要执行的脚本之后 把这个字段值改为 runend,
    当五分钟后要去执行这个脚本时,你从数据库里读取下这个字段的值,如果是runing  则不再执行,如果是runend则去执行这个脚本。