[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Ускорение работы PHP скрипта
varn
Проблема: php скрипт извлекает данные из многих сайтов, как результат грузится не меньше минуты.
поставлена задача решить эту проблему просто.
например, запускать скрипт кроном каждую минуту, а при обращении из адресной строки загружать последнюю, полученную и сохраненную на данный момент версию данных.
то есть если данные загружаются на страницу script.php можно ли сделать так, чтобы при обращении к script2.php, загружались последние поступившие в script.php данные, независимо от того, выполняется ли в данный момент script.php или нет, и без дополнительных логов - что-то вроде кэша страницы - можно ли в принципе решить это средствами php?
Игорь_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
vagrand
varn
Не знаю что у вас там за данные но способов реализации такой задачи уйма. Самый простой сохранить их базу или файл, а во втором скрипте считать оттуда.

_____________
Senior PHP developer: PHP5, MySQL, JavaScript, CakePHP, Yii/Yii2, Zend Framework, Smarty, XML/Xslt, JQuery, Jquery Mobile, Bootstrap, ExtJS, HTML, HTML5, CSS, Linux, SVN, Git, Memcached, Redis, MongoDB, Zend Guard, Ioncube, FFMpeg, PayPal, Webmoney, Qiwi, Facebook API, Vkontakte Api, Google API, Twitter Api, Steam Api.
Junior Android Developer: Android SDK, многопоточность, работа с HTTP запросами, JSON, SQLite, фрагменты.
killer8080
Цитата (Игорь_Vasinsky @ 6.02.2014 - 03:30)
ты не сможешь запускать скрипт кроном каждую минуту)

отчего же, может, если хостинг позволяет smile.gif
varn
Добрый день, vagrand,
некоторые сайты, с которых извлекаются данные грузятся очень медленно, из-за этого проблемы,
понимаю, что способов уйма. есть ли среди них такой, который позволит не разбираясь со структурой скрипта и без дополнительных файлов-логов решить проблему? То есть что-то вроде кэша страницы, или это в принципе невозможно
Игорь_Vasinsky
Цитата
есть ли среди них такой, который позволит не разбираясь со структурой скрипта и без дополнительных файлов-логов решить проблему? То есть что-то вроде кэша страницы, или это в принципе невозможно


ну, как вариант

Свернутый текст
user posted image


_____________
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
vagrand
varn
Цитата
есть ли среди них такой, который позволит не разбираясь со структурой скрипта и без дополнительных файлов-логов решить проблему?


Вот как это для меня звучит: "Есть ли вариант ничего не делая получить то, что я хочу?". Думаю ответ очевиден.

_____________
Senior PHP developer: PHP5, MySQL, JavaScript, CakePHP, Yii/Yii2, Zend Framework, Smarty, XML/Xslt, JQuery, Jquery Mobile, Bootstrap, ExtJS, HTML, HTML5, CSS, Linux, SVN, Git, Memcached, Redis, MongoDB, Zend Guard, Ioncube, FFMpeg, PayPal, Webmoney, Qiwi, Facebook API, Vkontakte Api, Google API, Twitter Api, Steam Api.
Junior Android Developer: Android SDK, многопоточность, работа с HTTP запросами, JSON, SQLite, фрагменты.
sergeiss
Цитата (varn @ 6.02.2014 - 12:25)
То есть что-то вроде кэша страницы, или это в принципе невозможно

Что невозможно - кэш страницы? Тут от тебя зависит smile.gif Если ты можешь сохранить полученные данные, то ты можешь организовать кэш. Ведь что такое "кэш"? Википедия так об этом говорит:
Цитата
Кэш[1][2][3] или кеш[4][5][6] (англ. cache, от фр. cacher — «прятать»; произносится [kæʃ] — «кэш») — промежуточный буфер с быстрым доступом, содержащий информацию, которая может быть запрошена с наибольшей вероятностью.


Короче говоря, ты можешь запускать фоновый скрипт с нужной тебе периодичностью, собирать данные. В момент обращения за этими данными берешь самые свежие из имеющихся у тебя. Это может быть файл, это могут быть данные в БД. Можно собирать так только самые "тормозные" данные, все остальные, которые быстро собираются, получать в момент обращения.

Вобщем, всё в твоих руках!

PS. Господа "старожилы форума", вы можете не флудить? Помните, что вы тоже когда-то задавали нубские вопросы smile.gif Пусть даже и не на этом форуме, но вы же не родились уже со знанием ПХП и принципов работы интернета smile.gif

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Игорь_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
varn
Я сам не кодер. Нанял фрилансера, тот сделал сайт на php, сайт стал тормозить. Обратился, чтобы устранить проблему, тот еще столько же денег запросил. вот я и задумался. Ведь по идее в программировании должны быть предусмотрены решения, экономящие людям время - блоки, объекты, стандартные решения. Получается, нужно заново переделывать код и создавать базы ради простой в сущности операции - открыть страницу с последними полученными на текущий момент данными.
vagrand
varn
Все правильно, в программировании есть инструменты облегчающие разработку, но не на все случаи жизни. Для вашего конкретного случая хватит обернуть вызов парсилки в условие, проверяющее кэш, пусть хоть с того же файла. Ну и в самом коде парсилки сохранять в файл скачанные данные. Так же нужно придумать алгоритм экспайра кэша. В вашем случае скорее всего подойдет по времени экспайрить.

_____________
Senior PHP developer: PHP5, MySQL, JavaScript, CakePHP, Yii/Yii2, Zend Framework, Smarty, XML/Xslt, JQuery, Jquery Mobile, Bootstrap, ExtJS, HTML, HTML5, CSS, Linux, SVN, Git, Memcached, Redis, MongoDB, Zend Guard, Ioncube, FFMpeg, PayPal, Webmoney, Qiwi, Facebook API, Vkontakte Api, Google API, Twitter Api, Steam Api.
Junior Android Developer: Android SDK, многопоточность, работа с HTTP запросами, JSON, SQLite, фрагменты.
sergeiss
Цитата (varn @ 6.02.2014 - 14:59)
Я сам не кодер. Нанял фрилансера, тот сделал сайт на php, сайт стал тормозить.....

То есть, сначала сайт работал хорошо, а затем стал тормозить? Или тормоза были с самого начала?

Цитата (varn @ 6.02.2014 - 14:59)
Получается, нужно заново переделывать код и создавать базы ради простой в сущности операции....

Но вы ж не кодер, да? Поэтому судить вот так вот "огульно" о сложности переделки не стОит. Время и сложность переделки зависят от многих факторов.

Я не знаю ни ваш сайт, ни того фрилансера, поэтому ничего не могу сказать о том, как было сделано изначально smile.gif Единственное, в чем я абсолютно уверен, так это в том, что человек, создавший сайт, лучше всего в нем разберётся.
Если программер выполнил первую часть работы согласно вашему же техзаданию, то тогда, возможно, имеет смысл доплатить ему за добавление нового функционала.

PS. Я так понял, что тут есть сомнения: не хочет ли программер поиметь много денег за простую задачу. Всё может быть smile.gif В том числе и то, что его запрос денег вполне адекватен требуемой задаче.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Быстрый ответ:

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