Posts Tagged ‘транзакции’

Nested Sets

Понедельник, Январь 14th, 2008

В очередной раз столкнулся с ситуацией, когда данный алгоритм просто жизненно необходим и снова столкнулся с тем, что из предложенного в Сети нет ничего рабочего под PHP :( (more…)

PHP транзакция

Суббота, Июнь 16th, 2007

возможно сглупил написал нижеприведенный код, посему хочу развернуть небольшое обсуждение на тему хорошо/плохо.

Задача: выполнить скрипт, занимающий большой период времени (секунд 20 например).
Проблема: при нескольких обращениях к скрипту запускалось несколько раз это действие и в итоге процесс либо зависал, либо постоянно обрабатывал данные (например заполнение некой таблицы, которую брать в транзакцию нельзя было на уровне СУБД)

мое решение:

$fname = ROOT."/transaction.lock";
if (!file_exists($fname) || filemtime($fname) < time() - 10 * 60) {
    @unlink($fname);
    $fp = fopen($fname, "w+t");
    fclose($fp);
    chmod($fname, 0777);
    //наши мега действия
    unlink($fname);
}

жду фразы “велосипед” и нормального решения :)))