![]() |
Есть ли оно какое? и так ли я понимаю главную сегодняшнюю функцию применения на сайтах CGI??
дело в том что я на бесплатном хостинге НЕ поддерживающем БД, создал чат.. и там все сообщения записываются в файл, я вот подумал, что будет если два пользователя одновременно введут сообщения, как мне кажется либо ни одно сообщение не дойдет, или дойдет только одно. как в таких случаях создать поочередную запись в файл одновременно запрашивающих этот же файл пользователей на запись например? подскажите что вы знаете пожалуста, и как этого можно добится с помощью CGI? адрес моего тестируемого чата http://vv.fatal.ru П. С. я с CGI никогда не работал и почти вообще ничего о нем(или о них) не представляю)).....:( |
Цитата:
Что касается блокировки фалов, на каком языке блокировать-то :) ? (Или просто блокировать внешними средствами OS?) можно тз поподробней :) ? На всякий случай отпишу про Perl (как про наиболее часто употребляемый язык). Есть там такая встроенная функция flock. Она блокирует доступ к файлу, пока в него вносятся изменения. Код:
flock(дескриптор_файла, код_блокировки), Цитата:
Возможный вариант: кроме flock поступать, как pop3d *в *nix: когда ты забираешь письмо с сервера, там создается копия файла твоего почтового ящика с точкой в начале имени (например: .fade) Это признак для программы, что ящик занят. зы под виндами flock, по-моему просто не работает, тк, судя по всему, является надстройкой над системными функциями [s]Исправлено: mar, 15:27 27-06-2004[/s] |
FADE
лично я вижу в применении CGI либо когда нужно сделать так чтобы каждый скрипт запускался в отдельном потоке, в таком случае сметрь одного никак не повлияет на другие процессы. если же упадет модуль, то упадут все процессы. еще одно преивущество в том что в CGI можно использовать бинарники, это может быть полезно в тех случаях когда нужно максимальная скорость матаметики ( реальных примером придумать не смог) испольнение скриптов в модуле позволяет снизить время отклика, в некоторых случаях производительность повышается в разы! |
Vlad Drakula
в отдельном потоке? т.е. для каждого посетителя своя сессия я так понимаю? а гденибудь можно найти готовые подобные скрипты, чтобы хотябы получить представление как это работает, и как для этого нужно ставить перл к апачу? как модуль или как?..(( Добавлено: mar почти ничего не понял, но всеравно спасибо:gigi: как только на линукс уговорят перейти обязат flock попробую:oszone: А у тебя нету какогонибудь мануальчика по Перлу на не буржуйском под винды? |
FADE
сессия на каждого юзера всегда своя, не зависимо CGI или не CGI просто по определению! еще уточнение - для создания каждой страницы используется отдельный процес, в случае CGI от внешний, в случае МОД он внутренний. Еще хочу отметить что есть серверная Ява, так она работает постоянно не зависимо есть запросы к серверу или нет. FADE все это я наблюдал с ПХП, сначала он у меня стоял как CGI, потом как модуль. FADE если нужно то у меня есть 2 книзки на английском и одна на русском - всего 3,3мб |
Vlad Drakula
Vlad Drakula на русском не отказался бы) |
FADE
скрипт и под cgi, и под модуль работать будет один и тот же. Просто дальше либо сервер для каждого cgi-скрипта запускает на выполнение интерпритатор в отдельном процессе (или, если писать на C - бинарник программы). По завершении работы процесс уничтожается. А модуль имеет свой интерпритатор. (Но, Vlad, отвалить модуль по ошибке мягко говоря не просто, этак можно и интерпритатор уничтожить :) Perl категорически не рекомендую(!) ставить модулем, тк модулем он действительно работает быстрее, но пожирает всю имеющуюся память (работает с ней, прямо, как газ с объемом :( ) Наверное, неудачно объяснила. Извини, могу попробовать переобъяснить, если есть вопросы. Я так поняла, что нужна блокировка файлов и написала, как это делать на Perl. А на каком языке написан чат? Мануалыы поищу, где-то у меня были книги (но не под wind-ы, конечно, а проосто по perl-у) |
mar
модуль можно повесить! я встечал людей которые вешали, но в основном это связано с тем особенностями Апач2 вешали они на ресурсоемких задачах - например построить дерево из 100мб xml"ки на выделенном сервере! FADE хочешь докусентацию... пошли мне запрос на мыло! |
mar
чат целиком на php.. без базнаписан с нуля короче говоря ребят, как обычно устонавливают перл на виртуальном сервере?))) |
FADE
sorry, я ответила по Perl-у, просто, решив, что раз cgi, значит perl Если речь идет о php, то можно решать для php Или надо уже не файлы лочить, а perl ставить ;)? |
mar
и то и то надо)) файлыы надо лочить, и я так понимаю посредством cgi лутше всего, но а чтобы cgi скрипт поставить нужно установить перл, а чтобы перл установить надо знать как его установить и как он будет действовать по отношению к апачу: как модуль или не зависимо, я ничего не забыл?) Добавлено: минуточку, или cgi могут быть написаны и на php???? если так то это решает все проблемы) |
файлы лочить можно чем угодно, я уже писала, что cgi тут не причем. В PHP имеется такой же flock И тоже с заморочками (см по ссылке)
Кроме того: Цитата:
Perl на хостинге у провайдера (не колакейшен, не выделенный jail) ставит (или не ставит) хостер. |
дык как же я ето flock буду тестировать у себя под виндой если она доступна только под линух?
у моего хостера вроде установлен перл):oszone: |
FADE
зато у хостера *nix, раз он еще жив ;) на Perl flock тоже под win, насколько мне помнится, не пойдет. Так что в этом плане смысла перепрыгивать на другой язык - ни малейшего. :o |
хочу заметить что с помошью CGI не получится достич большой производительности!
на среднем сервере ты сможешь достичь максимум 10000 страниц в час, для чата это очень мало! так что либо супер мощный сервер, либо мод! |
Vlad Drakula
вот как этот мод привязать к апачу и мускулю.. |
FADE
я боюсь показаться навязчивой :), но, если *ты хостишься у хостера, то mod_ или не mod_ ставит он. А если у себя, так вы с Владом же долго и, вроде бы успешно мод_пхп ставили? или я в конец запуталась, и там был не модуль :o ? [s]Исправлено: mar, 1:12 30-06-2004[/s] |
mar
ну дык мы пхп как модуль поставили, а я про перл спрашиваю. почему перл хочу поставить, потому как не получил внятного ответа, cgi скрипты пишутся только на языке perl или можно и на пхп??? |
FADE
Если я сам ничего не путаю, то вы просто пишете скрипт, а вот как он будет выполняться - в режиме мода к серверу или как самостоятельный процесс уже до лампочки... почти. К примеру в php если он не в качестве мода нельзя отправлять заголовки авторизации. |
FADE
чтобы пхп был модулем: LoadModule php4_module "C:/php/sapi/php4apache2.dll" чтобы пхп был CGI: Action application/x-httpd-php "/php/php.exe" |
Время: 14:47. |
Время: 14:47.
© OSzone.net 2001-