powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Доступ к генерируемым данным до окончания выполнения скрипта
6 сообщений из 6, страница 1 из 1
Доступ к генерируемым данным до окончания выполнения скрипта
    #37865651
tiosteel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
тематика следующая: делаю прогресс-бар для долговыполняемого скрипта script1.php

аякс и форма настроены, каркас script1.php готов; script2.php, запрашивающий текущее состояние выполнения готов
на каждом шаге script1.php пишет в файл file1.php статистическую инфу о ходе выполнения
на время тестирования за "содержимое" шага берется sleep(2);

Проблема заключается в том, что я не могу получить доcтуп к содержимому file1 ДО окончания выполнения script1.php
Пробовал через include, через fonen($fp,'r')+fread($fp,sizeof($fp)), через file_get_contents()
Пробовал, кстати, через сессию - то же самое

Подскажите, в какую сторону копать?
...
Рейтинг: 0 / 0
Доступ к генерируемым данным до окончания выполнения скрипта
    #37865672
Фотография Ренат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tiosteelтематика следующая: делаю прогресс-бар для долговыполняемого скрипта script1.php

аякс и форма настроены, каркас script1.php готов; script2.php, запрашивающий текущее состояние выполнения готов
на каждом шаге script1.php пишет в файл file1.php статистическую инфу о ходе выполнения
на время тестирования за "содержимое" шага берется sleep(2);

Проблема заключается в том, что я не могу получить доcтуп к содержимому file1 ДО окончания выполнения script1.php
Пробовал через include, через fonen($fp,'r')+fread($fp,sizeof($fp)), через file_get_contents()
Пробовал, кстати, через сессию - то же самое

Подскажите, в какую сторону копать?
ну видимо ваш срипт открываает файл file1.php для записи, и закрывает его только после окончания работы. Закрывате его после каждой записи в файл. А вобще лучше в базку пишите прогресс, так проще получаеться, и конфликтво не огребете при одновременном обращении
...
Рейтинг: 0 / 0
Доступ к генерируемым данным до окончания выполнения скрипта
    #37865730
tiosteel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ренатну видимо ваш срипт открываает файл file1.php для записи, и закрывает его только после окончания работы. Закрывате его после каждой записи в файл. А вобще лучше в базку пишите прогресс, так проще получаеться, и конфликтво не огребете при одновременном обращении
пишу в файл функцией
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
function fixStep($arr){
    if (!(int)$arr['step']) return 0;
    if (!file_exists(TEMPLATE.'parser_contacts/progress.php')){
        $fp=fopen(TEMPLATE.'parser_contacts/progress.php','w+');
        fclose($fp);
    }
    $fp=fopen(TEMPLATE.'parser_contacts/progress.php','w+');
    fwrite($fp,'<?');
    fwrite($fp,'$arr["starttime"]="'.$arr['starttime'].'";');
    fwrite($fp,'$arr["step"]="'.$arr['step'].'";');
    fwrite($fp,'$arr["count"]="'.$arr['count'].'";');
    fwrite($fp,'$arr["currentDomain"]="'.$arr['currentDomain'].'";');
    fwrite($fp,'$arr["currentUrl"]="'.$arr['currentUrl'].'";');
    fwrite($fp,'$arr["subCount"]="'.$arr['subCount'].'";');
    fwrite($fp,'$arr["subStep"]="'.$arr['subStep'].'";');
    fwrite($fp,'?>');
    if (!fclose($fp)) return 0;
    return 1;
}


читать предпочитаю, соответственно, includeом
файл, как вы видите, закрывается на каждой итерации
важный момент, что то же самое происходит при попытке хранить итерацию в сессии...
...
Рейтинг: 0 / 0
Доступ к генерируемым данным до окончания выполнения скрипта
    #37865794
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
tiosteelПробовал, кстати, через сессию - то же самое
Через сессию то точно не получится. Почитайте описание фнкции session_write_close as session data is locked to prevent concurrent writes only one script may operate on a session at any timeВобщем, если у вас в обоих скриптах используетсясессия, они не смогут работать параллельно.
...
Рейтинг: 0 / 0
Доступ к генерируемым данным до окончания выполнения скрипта
    #37866923
tiosteel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
РенатА вобще лучше в базку пишите прогресс, так проще получаеться, и конфликтво не огребете при одновременном обращении
попробовал через базу (mySql), результат абсолютно тот же самый

возможно нужно как-то настроить саму базу, чтобы Select-запросы стояли в очереди выше Update, но сама по себе база проблему вообще не решила, только время потратил
...
Рейтинг: 0 / 0
Доступ к генерируемым данным до окончания выполнения скрипта
    #37866929
tiosteel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tiosteelРенатА вобще лучше в базку пишите прогресс, так проще получаеться, и конфликтво не огребете при одновременном обращении
попробовал через базу (mySql), результат абсолютно тот же самый

возможно нужно как-то настроить саму базу, чтобы Select-запросы стояли в очереди выше Update, но сама по себе база проблему вообще не решила, только время потратил
затупил>< на базе таки получилось, причиной была незакрытая в обоих скриптах сессия (которая, что самое смешное, к бару никакого отношения не имела)

в общем тему можно закрывать...
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Доступ к генерируемым данным до окончания выполнения скрипта
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]