[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вывод данных долгоиграющего скрипта
Страницы: 1, 2
Воитель
Есть скрипт который очень долго грузиться - пару часов. Вопрос: Есть ли где-то настройка сервера, которая позволила бы отдавать информацию пользователю до полной обработки скрипта? Может есть какая-то команда по которой отпускается информация клиенту?


P.S. Прошу не спрашивать что это за скрипт, и почему он такой долго играющий.

_____________
Вечно учусь.
Игорь_Vasinsky
пока скрипт не вернул результат - этот результат не виден ни кому.

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
AllesKlar
Воитель
Как один из вариантов выхода - скрипт сохраняет куда-либо промежуточные результаты. Браузер аяксом их подгружает.

_____________
[продано копирайтерам]
BaNru
На данный момент PHP - это однопоточный ЯП. Но где-то видел, что это когда-нибудь изменится biggrin.gif
Сейчас можно погуглить про (псевдо) многопоточность PHP.
Valick
да уж
<?php
header( 'Content-type: text/html; charset=utf-8' );
echo 'Begin ...<br />';
for( $i = 0 ; $i < 10 ; $i++ )
{
echo $i . '<br />';
flush();
ob_flush();
sleep(1);
}
echo 'End ...<br />';
?>

не хотел отвечать ТС так как по моему мнению он совершенно этого не заслуживает
P.S. Прошу не спрашивать почему

_____________
Стимулятор ~yoomoney - 41001303250491
BaNru
Valick, а ты сам пробовал запускать свой скрипт?
AllesKlar
Valick
А смысл танцев с буферизацией?
Результат отдает не php.
То что ты из php выплюнул кусок буфера, так сервер его в свой буфер поймал и ждет окончания работы скрипта.
Там хоть на китайском напиши, сервер пока не получит весь вывод, не отдаст буфер в браузер.

_____________
[продано копирайтерам]
nikolaevevge
Цитата (Воитель @ 11.04.2014 - 10:34)
Есть скрипт который очень долго грузиться - пару часов. Вопрос: Есть ли где-то настройка сервера, которая позволила бы отдавать информацию пользователю до полной обработки скрипта? Может есть какая-то команда по которой отпускается информация клиенту?


P.S. Прошу не спрашивать что это за скрипт, и почему он такой долго играющий.

очень долго грузиться - пару часов

Думайте над оптимизацией работы. Не дело обрабатывать данные пару часов. Даже 15 минут это много.

У Вас там что сворачиваются бухгалтерские итоги?
Valick
Цитата
Valick, а ты сам пробовал запускать свой скрипт?

а у тебя что ума не хватило запустить?
и это не мой скрипт
http://www.php.net/manual/ru/function.ob-flush.php

AllesKlar, запусти скрипт.


_____________
Стимулятор ~yoomoney - 41001303250491
BaNru
Цитата (Valick @ 11.04.2014 - 11:56)
а у тебя что ума не хватило запустить?

В том и дело, что хватило, в отличие от тебя.
Прежде чем выкладывать чужой скрипт - стоит проверить.
AllesKlar
Valick
Хамите, парниша.

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

Уж не поленюсь, приведу пару цитат из мануала так полюбившейся тебе функции:

Цитата
flush() не может изменить схему буферизации вашего web-сервера и никак не влияет на буферизацию браузера на стороне клиента.
Цитата

Некоторые серверы, особенно под управлением Win32, будут по-прежнему продолжать буферизировать вывод вашего скрипта до передачи результатов в браузер.

Серверные модули для Apache, такие как mod_gzip, могут сами выполнять буферизацию, поэтому flush() не приводит к немедленной передаче данных клиенту.

Браузер может также буферизировать поступающие к нему данные перед отображением.


Собственно, это то, о чем я написал в первом посте.

_____________
[продано копирайтерам]
Valick
AllesKlar, вот разработчики-то идиоты, придумали ненужную, а главное нерабочую функцию...
Внимательно читаем вопрос ТС
Цитата
Может есть какая-то команда по которой отпускается информация клиенту?

ещё вопросы есть?

____
Цитата
Прежде чем выкладывать чужой скрипт - стоит проверить.

у меня все работает, пора бы вам уже начинать читать умные книжки, глядишь и у вас начнет получаться

_____________
Стимулятор ~yoomoney - 41001303250491
AllesKlar
Valick
Функция буфиризации вывода очень нужная.
Если у тебя собственный сервер, ты волен на нем делать все, что заблагоразумится.
В том числе выдавать буфер вывода сразу.
И разработчики дают тебе данный инструментарий.

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

А ты, вместо того, чтобы принять конструктивную критику, основанную на выдержках из официального мануала тех же разработчиков, на коих ты киваешь, продолжаешь стоять на своем.

Да выводи данные в середине скрипта. Тебе же никто не запрещает. У каждого из нас есть тонны говнокода, который мы перечитываем спустя годы и смахиваем слезу ностальгии.
Ну, будет у тебя на пару килобайт больше какашек... твое право.

Цитата
у меня все работает

Если бы была программистская инквизиция, то за эту фразу, нужно было бы казнить без суда.
Работать должно не у тебя, а везде на всех конфигурациях.

_____________
[продано копирайтерам]
BaNru
Valick, http://test.g63.ru/other/flush.php

Показывай где у тебя работает
Valick
Цитата
Работать должно не у тебя, а везде на всех конфигурациях.

Вот тут ты братец не прав, в противном случае была бы одна единственная конфигурация у всех. Если нет ни рук ни головы настроить сервер под свои нужды, то я то чем могу помочь?

_____________
Стимулятор ~yoomoney - 41001303250491
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.