Php系统()挂起?

时间:2014-09-29 08:38:40

标签: php python system

我的节目在哪里:

  • 在php中运行无限循环,我在其中获取要处理的新记录,保存在文件中
  • 运行python脚本在池脚本进程中记录

php代码:

while(true) {
    $records = get_records();
    file_put_contents($file_name, json_encode($records));
    echo "php:system:before";
    system("python script.py $file_name");
    echo "php:system:before";
}

python代码:

import json
import os
import sys
import time
import random
import urllib2
from multiprocessing import Pool, freeze_support
from subprocess import Popen, PIPE
from os.path import isdir
from platform import system
from lib import Logger

def do_something(record):
    # ... some operations
    print("python:record:done")

if __name__ == '__main__':
    records = read_records
    pool = Pool(4)
    pool.map(do_something, records)
    pool.close()
    pool.join()
    print("python:done")

但是不时有进程挂起。

我的日志:

php:system:start
python:record:done
python:record:done
python:record:done
python:record:done
python:record:done
python:record:done
python:record:done
python:done
<- here I expect php:system:before

但每天两次我没有得到它并且我重置了程序。 哪里出错,为什么脚本会挂起?

1 个答案:

答案 0 :(得分:1)

这是Apache中的一个已知错误:

https://bugs.php.net/bug.php?id=44942