Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.11.18;
Скачать: CL | DM;

Вниз

Синхронизация в 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;
Скачать: CL | DM;

Наверх




Память: 0.58 MB
Время: 0.023 c
2-1192859788
Kolan
2007-10-20 09:56
2007.11.18
Как при сворачивании модальной формы свернуть все приложение?


11-1177003083
Vladimir Kladov
2007-04-19 21:18
2007.11.18
Casm2Basm


2-1193234037
NewestAlex
2007-10-24 17:53
2007.11.18
TUpDown +не целые значения


2-1193597603
batya_
2007-10-28 21:53
2007.11.18
опредиление что подключена флешка


15-1192607027
Виталий____
2007-10-17 11:43
2007.11.18
Средства написания клиентских приложений к БД