Форум: "Прочее";
Текущий архив: 2007.11.18;
Скачать: [xml.tar.bz2];
ВнизСинхронизация в PHP, многопоточность Найти похожие ветки
← →
Piter © (2007-09-25 17:02) [0]Нужно написать на PHP монитор серверов... Возникают вопросы:
1) скрипт мониторинга выполняется раз в минуту планировщиком. Но если предыдущий запуск еще не завершил свою работу, то смысла запускать по новой нет. Как бы в скрипте обнаружить, что предыдущий скрипт не отработал? Неужели нет никаких встроенных механизмов синхронизации? (семафоры какие-нибудь, мьютексы)
2) поскольку серверов может быть много - не так уж плохо было бы при сканировании запускать несколько потоков. Куда смотреть / читать про реализацию многопоточности в PHP?
← →
umbra © (2007-09-25 17:10) [1]
> Как бы в скрипте обнаружить, что предыдущий скрипт не отработал?
при старте создается файл, при завершении - удаляется.
> поскольку серверов может быть много - не так уж плохо было
> бы при сканировании запускать несколько потоков.
запускать главный скрипт, который запускает нужное количество копий скрипта, выполняющего задачу
← →
Zeqfreed © (2007-09-25 18:25) [2]Лучше игры трехмерные на PHP писать. Почему бы не взять Python, который гораздо удобнее для прикладных задач?
← →
Piter © (2007-09-25 18:27) [3]umbra © (25.09.07 17:10) [1]
при старте создается файл, при завершении - удаляется
Неужели нету нормальных средств синхронизации?
umbra © (25.09.07 17:10) [1]
запускать главный скрипт, который запускает нужное количество копий скрипта, выполняющего задачу
а как запускать сторонний скрипт из PHP?
← →
umbra © (2007-09-25 18:27) [4]или perl. Там поточность встроенная и стандартные объекты синхронизации доступны.
← →
Eraser © (2007-09-25 18:29) [5]
> Piter © (25.09.07 18:27) [3]
> Неужели нету нормальных средств синхронизации?
нету )
← →
Zeqfreed © (2007-09-25 18:36) [6]> Piter © (25.09.07 18:27) [3]
> а как запускать сторонний скрипт из PHP?
http://ru2.php.net/system
← →
Piter © (2007-09-25 18:51) [7]Zeqfreed © (25.09.07 18:36) [6]
http://ru2.php.net/system
хм... Мне кажется это больше подходит для запуска именно исполняемых файлов! А мне то надо запустить выполнение PHP-скрипта, причем запустить и чтобы управление сразу вернулось...
← →
Zeqfreed © (2007-09-25 18:59) [8]> Piter © (25.09.07 18:51) [7]
Note: If you start a program using this function and want to leave it running in the background, you have to make sure that the output of that program is redirected to a file or some other output stream or else PHP will hang until the execution of the program ends.
И вообще, по крону кто запрещает запускать сразу несколько экземпляров скрипта?
← →
Piter © (2007-09-25 19:14) [9]Zeqfreed © (25.09.07 18:59) [8]
я к тому, что можно выполнять исполняемые файлы!!! Я так понимаю с помощью этой комманды PHP скрипт не выполнить.
Zeqfreed © (25.09.07 18:59) [8]
И вообще, по крону кто запрещает запускать сразу несколько экземпляров скрипта?
а что они делать будут, эти несколько экземпляров?! Никаких ведь механизмов синхронизации нету в PHP, правильно? Ну есть в базе допустим 50 серверов, которые нужно сканировать. Как скрипт поймет какой именно ему сервер сейчас промониторить?!
Cron тем более этого не поймет.
← →
Zeqfreed © (2007-09-25 19:18) [10]> Piter © (25.09.07 19:14) [9]
> Я так понимаю с помощью этой комманды PHP скрипт не выполнить.
Еще как выполнить. Кричать зачем? :)
> а что они делать будут, эти несколько экземпляров?!
Запускаться менеджером с различными параметрами, разумеется.
← →
Piter © (2007-09-25 19:51) [11]Zeqfreed © (25.09.07 19:18) [10]
Запускаться менеджером с различными параметрами, разумеется.
с какими, с различными? Самое то - параметром является идентификация определенного сервера. А тут как?
← →
Zeqfreed © (2007-09-25 20:11) [12]> Piter © (25.09.07 19:51) [11]
Если нужно обработать несколько сущностей (не знаю что за сервера там у тебя), то просто запускаешь несколько скриптов, каждому передавая параметром ту сущность, которую он должен обработать, и все.
А то лишь бы мудрить с многопоточностью, синхронизацией и бог знает чем еще. Keep it simple, stupid :)
← →
Piter © (2007-09-25 20:50) [13]Zeqfreed © (25.09.07 20:11) [12]
да откуда Cron"у знать про эти сущности?!
Список серверов не постоянен, их можно добавить через WEB-интерфейс (также как удалить). Список серверов грубо говоря хранится в БД.
P.S. Видимо, все таки написание будет на Perl, так как PHP оказалось чрезмерно убог.
← →
фуке (2007-09-25 21:17) [14]Проблемы-то нет и в PHP.
Используй файловый лок или LOCK TABLES в Mysql например. Пока заблокирована на запись, второй не сможет писать, будет ждать...
Что касается Perl, то он наиболее убог :-)
← →
celades © (2007-09-25 21:18) [15]
> P.S. Видимо, все таки написание будет на Perl, так как PHP
> оказалось чрезмерно убог.
:) плохому танцору...
← →
tesseract © (2007-09-25 21:24) [16]
> Что касается Perl, то он наиболее убог :-)
Так и скажи - лень учить, и нечего на него гнать, php просто обрезок перла - изначально он на нём и написан.
> Куда смотреть / читать про реализацию многопоточности в
> PHP?
В том же разделе, в каком многопоточность в bat. Из всех приведённых только Python обладает нормальной многопоточностью.
← →
Zeqfreed © (2007-09-25 21:46) [17]> Piter © (25.09.07 20:50) [13]
Ну неужели надо еще объяснять, что менеджер, который разбирает список сущносйтей и запускает скрипты на выполенение, — суть другой скрипт?
> P.S. Видимо, все таки написание будет на Perl, так как PHP
> оказалось чрезмерно убог.
Убог, как оказалось, не php.
← →
фуке (2007-09-25 22:14) [18]php просто обрезок перла - изначально он на нём и написан
Интересные новости из старости. Изначально была точка, а потом вселенная :-)
История PHP начинается с 1995 года, когда Расмус Лердорф (Rasmus Lerdorf) создал простое приложение на языке Perl, анализирующее посещения пользователями его резюме на веб-сайте. Затем, когда этим приложением уже пользовались несколько человек, а число желающих получить его постоянно увеличивалось, Лердорф назвал свое творение Personal Home Page Tools версия 1 и выставил для свободного скачивания. С этого момента начался небывалый взлет популярности PHP.
Как это всегда бывает, срочно потребовались доработки и дополнения. Для их реализации Расмус создает новую версию пакета, теперь уже написанную на С. Полученный таким образом инструмент приобретает рабочее название PHP/FI (Personal Home Page / Forms Interpreter -
http://www.phpworld.ru/php/phphistory.php
Понимаешь разницу между простым приложением и серьезной системой?
Да и появился-то он потому, что Perl не устраивал очень многих. PHP очень похож на C, но уж никак не на Perl, хотя и включает некоторые конструкции и Perl оставленные для его любителей.
← →
ferr © (2007-09-25 22:19) [19]> [18] фуке (25.09.07 22:14)
http://www.tiobe.com/tpci.htm
← →
Юрий © (2007-09-25 22:34) [20]> [17] Zeqfreed © (25.09.07 21:46)
Zeqfreed, ты же в теме. :)
Что без толку спорить, послать на phpclub и наблюдать.
← →
Zeqfreed © (2007-09-25 22:36) [21]> Юрий © (25.09.07 22:34) [20]
> ты же в теме
Хотелось бы верить. А послать мы всегда успеем :)
← →
фуке (2007-09-25 22:39) [22]>ferr
Все правильно
PHP 10.204% +1.08% A 4 место
Perl 5.416% -0.01% A 6 место
Смешно, что DELPHI на 14-ом, но на западе это так.
Есть еще:
Программисты переходят на Linux По данным Evans Data
Самым распространенным скриптовым языком программирования остается Javascript, значительно опережающий по популярности PHP, Ruby и Python
http://semen.iplot.ru/category/programmirovanie/programmisty_perehodyat_na_Linux.html
Perl неизвестно где...
← →
tesseract © (2007-09-25 22:49) [23]
> Perl неизвестно где...
В даминистрировании. PHP - суть примитив который устраивает 90% строителей домашних страничек, это пришлёпка для SkriptKiddie, но никак не язык программирования. Покажи мне админа / программиста с зарплатой больше хотя-бы 1000 уёв ?
Опросы вещь интересная,
"100% Россиян пользуються интерентом - это подтвердил опрос проведённый в интернете" .
ЗЫ: По хорошему в России самый распространянный язык - 1с :-)
← →
Zeqfreed © (2007-09-25 23:03) [24]> tesseract © (25.09.07 22:49) [23]
Вот оно как оказывается бывает. Хорошо, что я живу не в вашем мире.
← →
Piter © (2007-09-26 03:39) [25]Zeqfreed © (25.09.07 21:46) [17]
Убог, как оказалось, не php
да, да, да. Я уже понял в этом аспекте, PHP убог для этой задачи, многопоточности нет как класса, а также какой-либо синхронизации. Будешь спорить?
Файловый лок как способ синхронизации - о чем говорить...
Перл, питон или лучше C под nix, а ПХП максимум как реализация вывода из БД.
← →
Zeqfreed © (2007-09-26 07:25) [26]> Piter © (26.09.07 03:39) [25]
Вместо того, чтобы понять немного отличающийся от привычного тебе подхода к построению приложений, ты называешь язык убогим. Удачи тебе.
← →
Piter © (2007-09-26 11:11) [27]Zeqfreed © (26.09.07 7:25) [26]
Вместо того, чтобы понять немного отличающийся от привычного тебе подхода к построению приложений
я могу понять немного не такой, но грамотный подход. Если ты хочешь мне сказать, что файловый лок есть НЕМНОГО ДРУГОЙ ПОДХОД к синхронизации - о чем говорить?
Мне уже давно говорили, что ПХП убог, теперь я в этом убедился... В отличии от Perl"а, например.
Также как убога MySQL по сравнению с каким-нибудь постгрессом.
← →
VictorT © (2007-09-26 12:32) [28]А как это релизуется в Perl-е?
← →
tesseract © (2007-09-26 12:47) [29]
> Вот оно как оказывается бывает. Хорошо, что я живу не в
> вашем мире.
Уж слава богу...... Уж в моем мире и так куча народу с постпубертанным периодом.
ЗЫ: когда напишешь на PHP ПРИЛОЖЕНИЕ и зупуздыришь его в трей тогда может мнение перемениться. :-D
> Вместо того, чтобы понять немного отличающийся от привычного
> тебе подхода к построению приложений,
Personal Home Page - какие к @#$@!@#%% подходы к написанию приложений ?
← →
Юрий © (2007-09-26 12:49) [30]> [29] tesseract © (26.09.07 12:47)
> Personal Home Page
PHP: Hypertext Preprocessor.
← →
фуке (2007-09-26 21:32) [31]Первая версия PHP расшифровывалось как Personal Home Page, то есть набор скриптов для создания домашней странички. Впоследствии эта аббревиатура стала расшифровываться как PHP-Hypertext Preprocessor (вот такое рекурсивное определение, подобное Linux — Linux Is Not UniX).
Потом возможности скриптов были значительно расширены. Был написан процессор сценариев, добавлены средства для обработки HTML-форм и возможность включения SQL-запросов прямо в текст странички. Модуль обработки форм был назван FI (Form Interpreter), новая версия получила название PHP/FI, а позднее — просто PHP2. Это произошло в середине 1995 года.
В PHP3 синтаксис сценариев PHP был приведен к более стандартному виду и добавился API. На данный момент вышла уже 5-я версия PHP, но по-прежнему широко используется и более младшие версии — PHP3-4.
В PHP не обязательно использовать именно MySql. Можно и другие. Самое простое делать синхронизацию используя средства БД. Собственно так делают большинство топ каталогов. Как иначе обновлять данные поступающие от сайтов?
А в Perl с потоками не все так просто
http://xpoint.ru/forums/programming/perl/misc/thread/34748.xhtml
Лучше не стоит :-)
← →
tesseract © (2007-09-26 21:49) [32]
> фуке (26.09.07 21:32) [31]
И что ? Что этот перл значит - PHP как был примитивом ( ограниченным набором возможностей (С) Алгоритмика, раз ты не учил) так и останеться. Ruby, Asp.NET , JSP, ZOPE в разы его по возможностям превосходят.
← →
palva © (2007-09-26 22:39) [33]tesseract © (26.09.07 21:49) [32]
Любой язык имеет ограниченные возможности. Любой язык является примитивом.
Asp.NET это не язык
← →
homm © (2007-09-26 22:48) [34]> [16] tesseract © (25.09.07 21:24)
> php просто обрезок перла - изначально он на нём и написан.
Теперь то что с того?
> ЗЫ: когда напишешь на PHP ПРИЛОЖЕНИЕ и зупуздыришь его в
> трей тогда может мнение перемениться. :-D
С нетепрением ждем рассказ, как запузырить в трей приложение на перле.
← →
tesseract © (2007-09-27 10:24) [35]
> С нетепрением ждем рассказ, как запузырить в трей приложение
> на перле.
Вот этот COM поддерживает, можно без проблем запуздырить :
http://www.activestate.com/
> Asp.NET это не язык
Ну CLR - он вообще интересен, на 10-15 языках писать можно.
← →
umbra © (2007-09-27 10:30) [36]
> как запузырить в трей приложение на перле
в винде - легко.
← →
Style © (2007-09-27 11:31) [37]Че вы на ПыХыПы наизжаете - изыг еще молодой!
В 4ой версии даже с объектами нормально работать невозможно было и только
в 5ке существенно изменили модель ООП.
Да есть некоторые неудобства связанные с синхронизацией, но в принципе все решаемо. Можно использовать не только lock таблицы или файла, а например переменные окружения (putenv, getenv).
← →
DVM © (2007-09-27 11:33) [38]
> > как запузырить в трей приложение на перле
>
> в винде - легко.
Да и на перле несложно. Даже BAT-файлом можно.
← →
umbra © (2007-09-27 11:48) [39]
> Да и на перле несложно
имелось в виду, что на перле можно написать скрипт, имеющий окно и иконку в трее. Конечно, это делает не сам перл, а доп модули, работающие с виндовскими окнами.
← →
homm © (2007-09-27 22:34) [40]> [39] umbra © (27.09.07 11:48)
> Конечно, это делает не сам перл, а доп модули, работающие
> с виндовскими окнами.
Тогда при чем там перл? ПХП тоже модули поддерживает.
Страницы: 1 2 вся ветка
Форум: "Прочее";
Текущий архив: 2007.11.18;
Скачать: [xml.tar.bz2];
Память: 0.56 MB
Время: 0.059 c