Ты путаешь понятия. Демон, ты сам заметил,
Цитата |
это программа, которая работает в автоматическом режиме, без участия человека |
В твоем случае демон, это крон. Который принимает решение запускать в определенное время
твое приложение. Которое по сути демоном не является. Так как может быть запущено как демоном, так и другими способами.
Есть индивиды, которые пытаются действительно написать демон на PHP, используя бесконечные циклы к примеру.
Только причем тут ООП я тк и не понял.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
sergeiss
23.06.2013 - 12:18
Я ничего не путаю
Я говорил про 2 вида скриптов, отвечающих у меня за загрузку данных:
1. Запускаются по крону и по FTP грузят файлы на сервер. Запустился - загрузил - отключился.
2. Демон, который работает длительное время и следит: как только появились файлы для загрузки, то он тут же их обрабатывает и грузит данные в БД.
И демоном я называю именно 2-й тип скриптов, из описанных тут.
PS. Я сначала пробовал сразу же после загрузки файлов на сервер, тем же скриптом, грузить их в БД. Но иногда получалось, что несколько потоков начинали одновременно грузить данные. А их много в каждом файле. Мои размышления о том, как четко разделить процессы загрузки, чтобы в любой момент времени было не более одного процесса, грузящего эти данные в БД, привели к тому, что мне нужен именно демон.
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
Путаешь, путаешь)))
Почитай внимательно свою же ссылку на википедию.
Цитата |
В техническом смысле демоном считается процесс, который не имеет управляющего терминала. Чаще всего (но не обязательно) предком демона является init — корневой процесс UNIX. |
Твоя программа имеет управляющий терминал и уж точно не является службой. Служба, это в винде, демон, это в UNIX. Никаких PHP там близко нет. Твой скрипт
запускается демоном. А по сути остается скриптом, который можно легко запустить и из браузера.
Что ты назывешь демоном, дело десятое, есть четкое ему определение.
Демон, это процесс, который запускется единожды при старте системы. Твой скрипт запускается по расписанию. Так что путаешь, и еще как.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
А если у тебя действительно подобие демона на PHP, то есть скрипт, который запускается один раз и работает вечно, то это и есть извращение. Так как работать будет до первого ребута. Кроме того, он может наплодить процессов и вообще порушить логику обработки.
Так что выбирай. Либо ты занимаешься извращениями, либо это не демон.
Однако ООП тут совершенно не при делах.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
sergeiss
23.06.2013 - 12:40
Цитата (twin @ 23.06.2013 - 12:29) |
Твоя программа имеет управляющий терминал... |
С чего ты это решил?
Цитата (twin @ 23.06.2013 - 12:29) |
...и уж точно не является службой |
Да, с точки зрения ОС это не служба.
Цитата (twin @ 23.06.2013 - 12:29) |
Демон, это процесс, который запускется единожды при старте системы. Твой скрипт запускается по расписанию. |
Николай, ты человек умный, безусловно
Поэтому еще раз прочитай, что я написал: то, что я называю демоном, запускается именно единожды и работает в автоматическом режиме
А те скрипты, что запускается периодически, я демоном
не называю.
Опять же, у меня есть система контроля работы этого демона, как и у любой нормальной службы в ОС. То есть, если демон вдруг упадёт, то он будет запущен заново через достаточно короткое время. И - в автоматическом режиме.
Цитата (twin @ 23.06.2013 - 12:29) |
Твой скрипт запускается демоном. |
С чего ты это решил так?
Цитата (twin @ 23.06.2013 - 12:29) |
Что ты назывешь демоном, дело десятое, есть четкое ему определение. |
Ну так я и привел это определение... И мой демон ему соответствует полностью
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
sergeiss
23.06.2013 - 12:44
PS. А ООП имеет сюда то отношение, что я раньше уже сказал. Ты сам же утверждал, что не имеет смысла использовать ООП для скрипта, работающего доли секунды. С этим я согласен, да и то частично
Но далее я написал, что на ПХП можно сделать демона, "долгоиграющий скрипт", который работает уже далеко не доли секунды. И для него (в т.ч. и по сути его работы, а не только по времени) использование ООП имеет смысл.
И вот дальше пошел спор "демон/не демон".
И еще. Как раз логику работы этот демон не нарушает, а очень хорошо выстраивает.
PPS.
Цитата (twin @ 23.06.2013 - 12:32) |
Так как работать будет до первого ребута. |
Ну так любой сервис работает "до первого ребута". А потом грузится заново при загрузке системы. Так что "мой" демон ничуть не лучше и не хуже других и в этом смысле
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
Цитата (sergeiss @ 23.06.2013 - 08:40) |
Цитата (twin @ 23.06.2013 - 12:29) | Твоя программа имеет управляющий терминал... |
С чего ты это решил?
|
Да потому что иное невозможно. Ты должен запустить сценарий. Обязан. Как. это вопрос второй: средствами сервера, из командной строки, кроном в конце концов. Ты сам говоришь, если он
Цитата |
вдруг упадёт, то он будет запущен заново через достаточно короткое время. |
Раз имеется возможность его запустить в отрыве от операционной системы, значит он по определению имеет управляющий интерфейс. Он не запустится сам в момент запуска ОС.
Ты просто пытаешься объединить в одну кучу демон (крон в данном случае) и управляемый демоном скрипт. Отключи крон, ребутни сервер и от твоего "демона" останется мокрое место. Сам твой скрипт никогда не запустится.
И я вообще не понимаю, зачем вешать надолго процесс PHP, если можно просто запускать его с нужной периодичностью тем же кроном. Раз в минуту допустим.
И еще раз. Причем тут ООП? Если ты выполнил свой обработчик в виде класса, это еще не значит, что это
объектно ориентированное программирование. Можно (и даже гораздо лучше) вообще использовать статический класс для твоих целей, нежели ориентироваться на
объекты.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
sergeiss
23.06.2013 - 16:07
Цитата (twin @ 23.06.2013 - 15:58) |
Ты просто пытаешься объединить в одну кучу демон (крон в данном случае) и управляемый демоном скрипт. Отключи крон, ребутни сервер и от твоего "демона" останется мокрое место. Сам твой скрипт никогда не запустится. |
Извини... Но тут ТЫ путаешь что-то. Покажи мне хотя бы одну (одну-единственную!!!) службу, которая может сама себя запустить? Будь то Апач, MySQL или любая другая служба - они не сами себя запускают, а кто-то их запускает. Специальная программа в ОС, которая отвечает за службы.
Тот факт, что мой демон (службу) запускает не эта специальная прога, не делает его, т.е. демон, не-демоном
Цитата (twin @ 23.06.2013 - 15:58) |
И я вообще не понимаю, зачем вешать надолго процесс PHP, если можно просто запускать его с нужной периодичностью тем же кроном. Раз в минуту допустим. |
Потому что "нужной" периодичности тут нет. В какой-то момент времени (если раз в минуту запускать) может не быть файлов для загрузки. В другой момент их столько, что за минуту они не успеют загрузиться в БД.
Как я уже говорил в этой теме, всяко пробовал. То, что сделал - вариант с демоном - это наилучший вариант. Из практики.
Цитата (twin @ 23.06.2013 - 15:58) |
Причем тут ООП? Если ты выполнил свой обработчик в виде класса, это еще не значит, что это объектно ориентированное программирование. |
Ну да, я давно знаю, что ты считаешь всех программеров не понимающими, что такое ООП... Знаю
Но я также знаю и то, что я хорошо понимаю, что такое ООП, то же, что и для многих других людей.
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
Цитата (sergeiss @ 23.06.2013 - 12:07) |
Извини... Но тут ТЫ путаешь что-то. Покажи мне хотя бы одну (одну-единственную!!!) службу, которая может сама себя запустить? Будь то Апач, MySQL или любая другая служба - они не сами себя запускают, а кто-то их запускает. Специальная программа в ОС, которая отвечает за службы.
Тот факт, что мой демон (службу) запускает не эта специальная прога, не делает его, т.е. демон, не-демоном
|
А вот и делает. Демон должен запускаться вместе с запуском ОС. На то он и демон. Все остальное запускается через управляющий интерфейс. И если твой скрипт запускается демоном, его самого это демоном не делает.
Цитата |
Потому что "нужной" периодичности тут нет. В какой-то момент времени (если раз в минуту запускать) может не быть файлов для загрузки. В другой момент их столько, что за минуту они не успеют загрузиться в БД. |
У меня была похожая задча. Мне присылают статистику. Запросами на мой API. Запросы идут пачками с совершенно несистематизированной периодичностью. Если я буду обрабатывать их в режиме рельного времени, образуется очередь, так как обработка достаточно сложная и затратная по времени. Ну и что... Я собираю данные в базу (эдакий буфер), потом раз в несколько минут кроном запускаю обработчик, который считывает данные и спокойно обрабатывает статистику. Обработанные данные убираются из буфера, а на момент обработки лочатся. Если не хватает времени, крон запускает второй процесс. Если хватает - отработал и умер. Зачем постоянно крутить его в памяти?
Цитата |
Как я уже говорил в этой теме, всяко пробовал. То, что сделал - вариант с демоном - это наилучший вариант. Из практики. |
Я тоже всяко пробовал, и демон в твоем понимании оказался на последнем месте.
Ну да не суть. Суть в другом.
Цитата |
Ну да, я давно знаю, что ты считаешь всех программеров не понимающими, что такое ООП... Знаю Но я также знаю и то, что я хорошо понимаю, что такое ООП, то же, что и для многих других людей. |
Даже самые прожженые апологеты объектной парадигмы всегда говорят - ООП, это не программирование классами. Это образ мышления.
Я просто не вижу в твоей задаче месту применения этой парадигмы... Ну оформишь ты это классом, ну инициализируешь объект, дальше то что? Где профит? Какая разница, будет висеть в оперативке экземпляр или просто класс, если и тот и другой используется единожды? Ну или процедурка, как у тебя. Где смысл использовать ООП тут?
Тем более тут, где ты сам хочешь использовать один
и только один процесс?
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
sergeiss
23.06.2013 - 19:39
Цитата (twin @ 23.06.2013 - 16:33) |
Какая разница, будет висеть в оперативке экземпляр или просто класс, если и тот и другой используется единожды? Ну или процедурка, как у тебя. Где смысл использовать ООП тут? Тем более тут, где ты сам хочешь использовать один и только один процесс? |
Ну да... И зачем это Си++ использует ООП? Всё равно же висит в оперативке один процесс...
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
Не путай кислое с холодным.
Ну во первых С++
не объектно-ориентированный язык, на нем можно писать и процедурно. И такие мелкие задачки как у тебя тоже не обязательно облачать в парадигму.
Во вторых, на сишке пишутся в основном десктопные приложения или те же демоны, поэтому сам принцип требует наличия постоянного процесса,
что в PHP является извращением, как в твоем случае.
В третьих, я в самом начале написал, что есть языки, где это устаканено и красиво. И имеет смысл. Сишка как раз один из них. Чего никак нельзя сказать о PHP.
Так что твой "демон" только подтверждает правило.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
sergeiss
23.06.2013 - 20:09
Мой демон что-то там подтверждает? Какое именно правило? Ты уж озвучь его, плз
Потому что я не понял, что именно он подтверждает. Он, демон этот, на самом деле создавался не для подтверждения чего-то-там, а для выполнения определенной работы. Которую он делает "на 5 с плюсом".
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
Он подтверждает то, что нет в PHP здач, которые бы требовали ООП парадигмы. Даже если его заставлять делать несвойственные вещи (читай - извращаться), такие как демоны или десктопные приложения, все равно от ООП в нем нет никакого профита.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
sergeiss
23.06.2013 - 20:31
Цитата (twin @ 23.06.2013 - 20:24) |
Он подтверждает то, что... |
В ответ могу только процитировать самого себя:
Цитата (sergeiss @ 23.06.2013 - 20:09) |
Он, демон этот, на самом деле создавался не для подтверждения чего-то-там, а для выполнения определенной работы. |
Коль... Это всё твоё мнение (насчет ненужности ООП в ПХП), которое ты хочешь навязать всем. Зачем, я только не пойму? Ну не нравится тебе лично ООП, так и не используй его.
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
Цитата (sergeiss @ 23.06.2013 - 16:31) |
Коль... Это всё твоё мнение (насчет ненужности ООП в ПХП), которое ты хочешь навязать всем. Зачем, я только не пойму? Ну не нравится тебе лично ООП, так и не используй его. |
А я и не использую. Да и не навязываю собственно никому. Просто люди должны иметь выбор, а его практически не остается, ибо власть узурпировали апологеты.
И теперь каждый вьюнош со взором горящим считает процедурку нубством, а себя гуру ООП, хотя толком и не понимает, что это и для чего нужно.
Я просто высказываю свою точку зрения, которая имеет право быть, так как у меня достаточно опыта сие утверждать.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.