|
|
|
насколько асинхронен FastCGI
|
|||
|---|---|---|---|
|
#18+
Добрй день. Сегодня открыл для себя FastCGI. Очень интересная, судя по всему, технология. Есть только один вопросик, и как всякий ленивый русский, мне проще спросить, чем все настраивать и самомы испытывать. Допустим, есть код, взятый с какого-то сайта, описывающий fastCGI: #include<fcgi-stdio.h> void main(void){ while( FCGI-Accept( ) >=0 ){ printf("Content-type: text/html\r\n"); printf("\r\n"); printf("Hello Network World! \r\n"); } exit(0); } Вопрос такой: а что будет, если у меня код внутри while выполняется, допустим, 10 секунд. 10 секунд сервер на другие запросы не отвечает или там внутри как-то реализована многопоточность или еще что? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2007, 10:07 |
|
||
|
насколько асинхронен FastCGI
|
|||
|---|---|---|---|
|
#18+
однопоточный сервер – это, надо сказать, даа… ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2007, 11:56 |
|
||
|
насколько асинхронен FastCGI
|
|||
|---|---|---|---|
|
#18+
Так вот и я про то же. Судя по этому примеру поток всего один, но умные люди такое серверное решение не придумают, но ведь хочется наверняка знать, а не наблюдать потом сплошной поток отказов. Где там что зарыто, чтобы многопоточность была? Или за меня уже все продумали, и я на nginx вешаю, допустим, этот же пример но с включенной задержкой вывода на пяток секунд, то что я получу? Висяк или все будет красиво? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2007, 12:28 |
|
||
|
насколько асинхронен FastCGI
|
|||
|---|---|---|---|
|
#18+
_sky_Судя по этому примеру поток всего одинпо какому примеру??? _sky_Где там что зарыто, чтобы многопоточность была?нуу… возьми исходники своего http-сервера, думаю, там увидишь, где многопоточность зарыта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2007, 12:36 |
|
||
|
насколько асинхронен FastCGI
|
|||
|---|---|---|---|
|
#18+
Стоп. Вы, кажется не совсем поняли. Это не CGI, это FastCGI, предполагается, что он висит постоянно в памяти и обрабатывает запросы от сервера. В данном примере он hello world выдает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2007, 12:57 |
|
||
|
насколько асинхронен FastCGI
|
|||
|---|---|---|---|
|
#18+
то есть он отдельным процессом запущен? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2007, 13:05 |
|
||
|
насколько асинхронен FastCGI
|
|||
|---|---|---|---|
|
#18+
Это от сервера зависит. Для апача в конфиге mod_fastcgi задается сколько процессов запускать. Если свободных процессов нет, естественно в очередь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2007, 14:41 |
|
||
|
насколько асинхронен FastCGI
|
|||
|---|---|---|---|
|
#18+
Вообще-то многопоточность это дело fastcgi сервера, т.е. приложения которое ты пишешь. Веб сервер в данном случае выступает ввиде прокси сервера между внешним миром и сервером fastcgi. Сам fastcgi сервер всегда висит в памяти(это одна из состовляющих его fast'ности) и биндит либо какой-то сетевой порт, либо юникс сокет. Через которые и осуществдялется взаимодействие с веб сервером. При поступлении запроса от веб сервера fastcgi сервер должен его обработать и выдать результат в соответсвии с протоколом. Как уж он это делает(threaded или fork) рашает реализация ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2007, 20:40 |
|
||
|
насколько асинхронен FastCGI
|
|||
|---|---|---|---|
|
#18+
Прошу прощения, что поднимаю тему из небытия. Так всё-таки, как быть с асинхронностью? Простой пример: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Вопрос: а можно ли как-то это дело прервать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2008, 16:43 |
|
||
|
|

start [/forum/topic.php?fid=16&fpage=139&tid=1345123]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
36ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 250ms |
| total: | 353ms |

| 0 / 0 |
