Автор Тема: Скрипт, работающий сутками  (Прочитано 4564 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн clever

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 21
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Скрипт, работающий сутками
« : 03 Февраля 2004, 05:27:23 »
Я пишу скрипт, который работает сутками на виртуальном хосте. Как мне его запустить или что написать в код, чтобы он беспрерывно работал даже при закрытии окна браузера?
А я мог потом в браузере заходить на страницу управления и отключать его или снова включать.

Оффлайн FreeSpace

  • Штатный лодырь
  • Ветеран
  • *****
  • Сообщений: 613
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.infinity.com.ua
Скрипт, работающий сутками
« Ответ #1 : 03 Февраля 2004, 06:25:34 »
Вообще, PHP не предназначен для работы постоянно. Он проектировался так, чтобы поработать - отдохнуть, поработать - отдохнуть. И так до нескольких десятков раз в секунду :)
А вот выносливости не хватает - долго работать не хочет.
Самое приемлемое решение - это периодически запускать скрипт по крону. Если же такое решение тебе не подходит, советую отказатся от реализации своей затеи на PHP - он для этого не предназначен.

Если не переубедил, лови пару функций, с которыми можно поиграться:
[p]set_time_limit[/p]
[p]ignore_user_abort[/p]
Не забудь почитать комментарии пользователей.
Программирование - это единственное искусство, которое способно воплотить столь уникальное сочетание эстетики и функциональности.

Оффлайн clever

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 21
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Скрипт, работающий сутками
« Ответ #2 : 03 Февраля 2004, 07:10:54 »
Я так понял, что достаточно запустить скрипт в браузере и он будет работать "вечно", пока max_execution_time не выйдет.

А почему он не может работать месяцами, допустим? Командой sleep периодически ему можно давать отдохнуть, моё мнение.

Оффлайн FreeSpace

  • Штатный лодырь
  • Ветеран
  • *****
  • Сообщений: 613
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.infinity.com.ua
Скрипт, работающий сутками
« Ответ #3 : 03 Февраля 2004, 09:15:39 »
clever
Понимаешь, в идеале всё должно быть именно так, как ты описал.
Но дело в том, что пхп изначально разрабатывался не для этих целей!
Может где в экстеншене разработчики маленькую утечку памяти оставили, может где ещё какая ошибка мелкая.
"Одна бабка сказала", что Апач сам убивает подобные "потоки-зомби" через три часа работы, но я не проверял.
А под "отдыхом для скрипта" я понимал завершение работы и полную очистку памяти. Тут слипы не помогут.

Может опишешь свою задачу?
Программирование - это единственное искусство, которое способно воплотить столь уникальное сочетание эстетики и функциональности.

Оффлайн clever

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 21
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Скрипт, работающий сутками
« Ответ #4 : 03 Февраля 2004, 10:16:16 »
Задача - чтение страниц и хождение по ссылкам пока страницы в нете не закончяаться.

Да и вллбще, хочу опробовать написания скрипта такой разновидности.

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Скрипт, работающий сутками
« Ответ #5 : 03 Февраля 2004, 12:20:18 »
Цитировать
FreeSpace:
Вообще, PHP не предназначен для работы постоянно. Он проектировался так, чтобы поработать - отдохнуть, поработать - отдохнуть. И так до нескольких десятков раз в секунду

mod_php не предназначен, а вот php_cli должен с подобными задачами справляться (правда на практике не проверял)
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Скрипт, работающий сутками
« Ответ #6 : 03 Февраля 2004, 12:20:21 »
clever
мое мнение, которое, конечно, ничуть тебя не поколеблет.
Тебе еще рано писать скрипты "такой разновидности".

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

а так - дерзай.
Надо же чем-то руки занять.

Оффлайн FreeSpace

  • Штатный лодырь
  • Ветеран
  • *****
  • Сообщений: 613
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.infinity.com.ua
Скрипт, работающий сутками
« Ответ #7 : 03 Февраля 2004, 19:10:41 »
Макс
Да, видать Ромик прав, рано я взялся другим советы давать. Всё время что-то из виду упускаю...
Про CLI - имхо ты полностью прав, хотя я тоже не проверял.
Программирование - это единственное искусство, которое способно воплотить столь уникальное сочетание эстетики и функциональности.

Оффлайн КшЫуфксрук

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 99
  • +0/-0
  • 0
    • Просмотр профиля
    • http://risearch.org/
Скрипт, работающий сутками
« Ответ #8 : 03 Февраля 2004, 19:35:00 »
Ты упустил один важный момент - хранение списка посещенных страниц и очереди на индексацию. Уже через пару часов работы в очереди скопится сотня тысяч урлов (или больше) и хранить их в виде массива в самом скрипте глупо, и памяти много надо и потерять обидно, если скрипт остановится. Значит нужно хранить этот список в каком-то внешнем хранилище - база или что-то еще. А как только ты решишь эту проблему, окажется, что скрипту незачем работать вечно. Его можно остановить и потом запустить снова, очередь адресов то у нас хранится независимо от скрипта.

P.S. А вообще для таких вещей нужен либо свой сервер, либо выделенная линия дома, независимо от языка реализации.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Скрипт, работающий сутками
« Ответ #9 : 03 Февраля 2004, 21:23:42 »
кросспостинг.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28