Реклама на сайте Advertise with us

Организация многопоточности php

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:

php

С нами с 09.10.06
Сообщения: 3706
Рейтинг: 2410


Передовик Master-X (16.01.2010)
Ссылка на сообщениеДобавлено: 11/11/08 в 20:57       Ответить с цитатойцитата 

Кто как реализует? желательно с исходниками(хотяб в общих чертах). Сам очень хочу научится писать скрипты с мультизадачностью. Хотелось бы увидеть кто чем дышит icon_smile.gif

IPhosters.com - любые решения для Вас (виртуалы от $4.99, vps от $11.99, дедики от $95)

0
 



С нами с 28.02.03
Сообщения: 8542
Рейтинг: 1609

Ссылка на сообщениеДобавлено: 11/11/08 в 21:09       Ответить с цитатойцитата 

много поточность луче на perl делать
http://liverus.ru/viewtopic.php?f=82&p=3397

Сдам место в подписи. Предложения в личку.

0
 

php

С нами с 09.10.06
Сообщения: 3706
Рейтинг: 2410


Передовик Master-X (16.01.2010)
Ссылка на сообщениеДобавлено: 11/11/08 в 21:14       Ответить с цитатойцитата 

да, про перл в курсе но хотелось бы именно на php решения...

IPhosters.com - любые решения для Вас (виртуалы от $4.99, vps от $11.99, дедики от $95)

0
 

programmer

С нами с 08.12.02
Сообщения: 7613
Рейтинг: 5760

Ссылка на сообщениеДобавлено: 11/11/08 в 21:51       Ответить с цитатойцитата 

php 5 CURL
а вообще это псевдо.
нуно другие решения

крипта на ByBit

0
 



С нами с 19.11.03
Сообщения: 3973
Рейтинг: 2362

Ссылка на сообщениеДобавлено: 11/11/08 в 22:05       Ответить с цитатойцитата 

_s_[sov] писал:
Кто как реализует? желательно с исходниками(хотяб в общих чертах). Сам очень хочу научится писать скрипты с мультизадачностью. Хотелось бы увидеть кто чем дышит icon_smile.gif


1) В php не реализована многопоточность и не будет реализована судя по всему, по средствам pcntl реализована мультипроцесность, которая жрет памяти и времени процессора просто дохера.
2) Лучше не пиши на php программы, требующие параллелизма.
3) Читай http://php.net/pcntl до полного просветления и спроси гугль, примеров масса, если хочешь поиграться с этой кривой вещью.

0
 

c++,php кодинг

С нами с 22.10.05
Сообщения: 1098
Рейтинг: 558

Ссылка на сообщениеДобавлено: 12/11/08 в 00:09       Ответить с цитатойцитата 

есть родительский скрипт, есть дочерние скрипты. родительский опрашивает дочерние с использованием неблокирующих (или как там по-русски) сокетов.

основной принцип.

0
 



С нами с 21.06.05
Сообщения: 1788
Рейтинг: 1579

Ссылка на сообщениеДобавлено: 12/11/08 в 00:31       Ответить с цитатойцитата 

0
 



С нами с 01.12.04
Сообщения: 90
Рейтинг: 48

Ссылка на сообщениеДобавлено: 12/11/08 в 02:39       Ответить с цитатойцитата 

Реализуем через апач. Скрипт создаёт задания в виде файлов и дёргает скрипты на своём же сервере, не ожидая ответа. Потом сидит и ждёт, пока дёрнутые скрипты прочитают файлы, отработают и отложат личинки. Работает в принципе везде, включая любой шаред хостинги и фрихосты, оверхед по сравнению с другими способами как ни странно небольшой. smail54.gif

SEO-блог где палят темы

0
 



С нами с 19.11.03
Сообщения: 3973
Рейтинг: 2362

Ссылка на сообщениеДобавлено: 12/11/08 в 03:24       Ответить с цитатойцитата 



Жги еще! Учи ребят ложить сервера smail101.gif

Образ апача в лучшем случае от 20 метров, запусти 100 копий своего чудо-скрипта, и увидишь как на сервере исчезнет 2 гигабайта памяти и скорее всего за этим исчезнет и сервер.

0
 



С нами с 01.12.04
Сообщения: 90
Рейтинг: 48

Ссылка на сообщениеДобавлено: 12/11/08 в 04:19       Ответить с цитатойцитата 

Если выделить много памяти, то она кончится, это такое свойство компьютеров. icon_smile.gif От реализации многопоточности не зависит вообще никак.

SEO-блог где палят темы

0
 



С нами с 19.11.03
Сообщения: 3973
Рейтинг: 2362

Ссылка на сообщениеДобавлено: 12/11/08 в 04:50       Ответить с цитатойцитата 

alexf2000 писал:
От реализации многопоточности не зависит вообще никак.


Все понятно, дискуссию на этом я с тобой закончу.

0
 



С нами с 01.12.04
Сообщения: 90
Рейтинг: 48

Ссылка на сообщениеДобавлено: 12/11/08 в 19:16       Ответить с цитатойцитата 

xreload писал:
Все понятно, дискуссию на этом я с тобой закончу.

А жаль. icon_smile.gif Я думал ты какой-нибудь свой способ сабжа напишешь. Я бы тогла попросил указать, сколько там памяти выделяется на 1 поток и по калькулятору точно вычислил бы, сколько их надо запустить, чтобы сожрались 2 гига памяти. icon_smile.gif

SEO-блог где палят темы

0
 



С нами с 03.05.07
Сообщения: 801
Рейтинг: 825

Ссылка на сообщениеДобавлено: 13/11/08 в 00:11       Ответить с цитатойцитата 

И нахуй сдался твой способ, если есть pcntl? Типа многопоточность для нищих, у кого нет денег на сервер с нормальным конфигом?

создай свою партнёрку

0
 



С нами с 03.05.07
Сообщения: 801
Рейтинг: 825

Ссылка на сообщениеДобавлено: 13/11/08 в 00:19       Ответить с цитатойцитата 

По сабжу - http://www.php.net/pcntl тут всё описано более чем подробно, с примером в 10 строк. Другое дело, что с ней делать потом? Обычно через многопоточность решают задачи, разделяя их между потоками. В большинстве случаев, это какие-нибудь парсеры и т.п., берущие данные из базы. Это решается по типу:

Код:

  $sql->query("UPDATE `items` SET `child`=".$this->child." WHERE `child`=-1 LIMIT 1");

  if (!$item_id=$sql->assoc_query("SELECT `id` FROM `items` WHERE `child`=".$this->child,"id"))
   return false;

  $sql->query("UPDATE `items` SET `child`=-2 WHERE `id`=$item_id");

  return $item_id;

Это пример того, как разделять записи между потоками. В данном случае, каждый поток получит уникальный item_id, изначально у всех необработанных записей стоит child=-1, у всех обработанных - child=-2

создай свою партнёрку

0
 

127.0.0.1

С нами с 26.04.06
Сообщения: 1092
Рейтинг: 557

Ссылка на сообщениеДобавлено: 13/11/08 в 01:32       Ответить с цитатойцитата 

я реализовывал пять потоков тупо через ифреймы
создается ифрейм с src="script.php?какие-то параметры"
после отработки ифрейма скрипт выводит простой ява-скрипт, разрушаюший элемент <iframe>
вот вообщем-то и все

параметры впрочем передевать черем файлы,скажем
thread1.txt
thread2.txt
и тд
и пусть каждый скрипт в фрейме читает свой файл по передаваемому номеру файла.

0
 



С нами с 01.12.04
Сообщения: 90
Рейтинг: 48

Ссылка на сообщениеДобавлено: 15/11/08 в 01:03       Ответить с цитатойцитата 

CJLOG, и нахуй сдался твой pcntl, если его нету? Типа многопоточность для тупых, кто не понимает что бывают другие хостинги, кроме собственных серверов и другие задачи которые надо на этих хостингах решать.

SEO-блог где палят темы

0
 

Самый добрый бегемот

С нами с 24.06.03
Сообщения: 954
Рейтинг: 574

Ссылка на сообщениеДобавлено: 15/11/08 в 02:53       Ответить с цитатойцитата 

xreload писал:
Жги еще! Учи ребят ложить сервера smail101.gif
Образ апача в лучшем случае от 20 метров, запусти 100 копий своего чудо-скрипта, и увидишь как на сервере исчезнет 2 гигабайта памяти и скорее всего за этим исчезнет и сервер.

ты не путаешь ничего про апач?
у меня вчера tds обслужила около 7м http запросов..
памяти на сервере 2гиг
по твоей логиге памяти явно мало
или я тебя не правильно понял?

0
 



С нами с 19.11.03
Сообщения: 3973
Рейтинг: 2362

Ссылка на сообщениеДобавлено: 15/11/08 в 19:30       Ответить с цитатойцитата 

atrius писал:
ты не путаешь ничего про апач?
у меня вчера tds обслужила около 7м http запросов..
памяти на сервере 2гиг
по твоей логиге памяти явно мало
или я тебя не правильно понял?


Вот именно, обслужила tds. Чувствуешь разницу между весящей копией apache, которая может так провисеть минут 10 делая что-то, и скриптом tds, который запускается на сотые доли секунды, чтобы послать редирект? Вот поэтому 7м трафа для тдс обслужить это не проблема.

0
 

php

С нами с 09.10.06
Сообщения: 3706
Рейтинг: 2410


Передовик Master-X (16.01.2010)
Ссылка на сообщениеДобавлено: 17/11/08 в 22:29       Ответить с цитатойцитата 

ак вот нахуярить то процесов можно, а если ситуация такая. есть парсер и 10 паг гугла для примера. то есть 10 потоков запускаю. каждый поток ебошит свою пагу. а как потом их связать? чета как то это не очень ясно. про писинтл_форк я читал многократно но пока ниче вразумительнова не понял... растолкуйте братцы icon_cry.gif

IPhosters.com - любые решения для Вас (виртуалы от $4.99, vps от $11.99, дедики от $95)

0
 



С нами с 19.11.03
Сообщения: 3973
Рейтинг: 2362

Ссылка на сообщениеДобавлено: 18/11/08 в 23:30       Ответить с цитатойцитата 



Стукни ко мне 3363семь044один, объясню.

0
 

php

С нами с 09.10.06
Сообщения: 3706
Рейтинг: 2410


Передовик Master-X (16.01.2010)
Ссылка на сообщениеДобавлено: 24/11/08 в 08:28       Ответить с цитатойцитата 

стучу - никто не отвечает...

IPhosters.com - любые решения для Вас (виртуалы от $4.99, vps от $11.99, дедики от $95)

0
 



С нами с 01.03.07
Сообщения: 304
Рейтинг: 223

Ссылка на сообщениеДобавлено: 26/11/08 в 01:59       Ответить с цитатойцитата 

тык парсеры можно запускать не в вебе через апач а через консоль php например

0
 

Самый добрый бегемот

С нами с 24.06.03
Сообщения: 954
Рейтинг: 574

Ссылка на сообщениеДобавлено: 26/11/08 в 09:38       Ответить с цитатойцитата 

_s_[sov] писал:
ак вот нахуярить то процесов можно, а если ситуация такая. есть парсер и 10 паг гугла для примера. то есть 10 потоков запускаю. каждый поток ебошит свою пагу. а как потом их связать? чета как то это не очень ясно. про писинтл_форк я читал многократно но пока ниче вразумительнова не понял... растолкуйте братцы icon_cry.gif

Как вариант результаты можно в базюльку складывать
Главное помнить, что на слабом или загруженном железе mysql - не лучший вариант
Хотя если ее грамотно настроить и расставить индексы, то будет чудо =)

0
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »