Альтернативы PHP Cron Job для длительных работ - PullRequest
1 голос
/ 11 января 2011

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

Я написал PHP-скрипт, который создает HTML-версию каждой страницы.Это выполняется один раз в час.Проблема в том, что PHP-скрипт истекает до завершения всех страниц.Я знаю, что могу увеличить время выполнения, разрешенное для сценариев PHP, но это не самый эффективный способ решения этой проблемы.

Есть ли другой способ сделать это?Я просто не знаю с чего начать - PERL?ДЖАВА?Python?Как эти сценарии работают на сервере?Что я должен искать от моего веб-хостинга?

Ответы [ 3 ]

2 голосов
/ 11 января 2011

Python с urllib2 , вероятно, сделает хорошую работу. Кроме того, правильно ли я понимаю: у вас есть сайт, который объединяет данные с других сайтов, и все это генерирует статический HTML? Похоже, вы как бы используете HTML в качестве базы данных, поэтому, возможно, стоит подумать об использовании правильного.

1 голос
/ 11 января 2011

Учитывая тот факт, что ваша первоначальная проблема связана с задержкой в ​​сети («страницы загружаются медленно»), я не вижу причин полагать, что PHP является узким местом здесь.Я сомневаюсь, что смена языков повлияет на время выполнения скрипта.

0 голосов
/ 11 января 2011

Другое решение может заключаться в использовании базы данных, а не в том, чтобы отнимать столько работы сразу.Составьте таблицу, в которой перечислены сайты, которые вы извлекаете, и сохраняйте их, когда они были в последний раз.Затем сделайте, чтобы cron вытащил 1 или 2, которые не были вытянуты некоторое время.Если он будет выполняться часто, тогда у вас всегда будут свежие данные, но сценарию будет легче работать, так как он не пытается сделать так много сразу.Эта концепция будет хорошо масштабироваться.

...