コード例 #1
0
ファイル: task.php プロジェクト: Julien-SIMON/GobelinsLab
        }
    }
}
// List all job to do in the queue folder
foreach (glob(get_ini('UPLOAD_FOLDER') . "queue/*.xml") as $jobName) {
    $fileFullPath = str_replace('\\', '/', $jobName);
    $jobName = substr($jobName, strrpos($jobName, '/') + 1, strlen($jobName) - strrpos($jobName, '/') - 1);
    // Valid the xml file with XSD
    $domXmlFile = new DOMDocument();
    $domXmlFile->preserveWhiteSpace = false;
    $domXmlFile->Load(get_ini('UPLOAD_FOLDER') . 'queue/' . $jobName);
    if ($domXmlFile->schemaValidate('plugins/core/xsd/core.xsd')) {
        if ($procM->getId($jobName) == 0) {
            $childProcId = $procM->create(0, $jobName, '', 10);
            usleep(500);
            if ($procM->getCount($jobName) > 1) {
                // Wait some millisecond to avoid concurent write
                usleep(mt_rand(100, 20000));
                if ($procM->getCount($jobName) > 1) {
                    $procM->delete($childProcId);
                    exit(0);
                }
            }
            echo _('#core#_#18#') . ' ' . $jobName . '.<BR>';
            $proc = new processus($childProcId);
            $procM->update($proc->id, 'running', '2');
            if (file_exists(get_ini('UPLOAD_FOLDER') . 'running/' . $jobName)) {
                unlink(get_ini('UPLOAD_FOLDER') . 'running/' . $jobName);
            }
            rename(get_ini('UPLOAD_FOLDER') . 'queue/' . $jobName, get_ini('UPLOAD_FOLDER') . 'running/' . $jobName);
            // Get header data