powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Можно ли послать сигнал от сервера клиенту?
18 сообщений из 18, страница 1 из 1
Можно ли послать сигнал от сервера клиенту?
    #38805591
shura223
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сабж. Смысл в том, что у клиента должно появиться оповещение, если произошло некоторое изменение в БД. Периодический опрос базы для такого, ИМХО, будет неправильным решением. Может сам сервер способен послать определенному клиенту сигнал, когда это требуется, а клиент уже, получив его, будет слать запрос в базу на информацию.
...
Рейтинг: 0 / 0
Можно ли послать сигнал от сервера клиенту?
    #38805606
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shura223Сабж. Смысл в том, что у клиента должно появиться оповещение, если произошло некоторое изменение в БД. Периодический опрос базы для такого, ИМХО, будет неправильным решением. Может сам сервер способен послать определенному клиенту сигнал, когда это требуется, а клиент уже, получив его, будет слать запрос в базу на информацию.

извратиться можно. тривиальный способ, база может делать селект в файл, а по крону стартует скрипт который при обнаружении нового файла делает что угодно

можно базе разрешить помоему запуск внешних команд, и тут тоже Делай что хочешь --не уверен что второе можно, но помню тема поднималась, и вроде через какойто плагин ктото нашол решение.


влюбом случае это криво и косо. база - это хранилище данных. задача вцелом сравнима чтобы дискета, винчестер, сд посылал сигнал что чтото на нём произошло. симкарта чтобы оповещала телефон что у неё место закончилось


это всё ересь. нормально чтобы в базу приложение обращалось ...

ток лучше сделать таблицу в памяти, и процес запускаемый базой при обнаружении что клиенту х надо сделать у - заносит это во временую таблицу... а клиент делает выборку из неё.
...
Рейтинг: 0 / 0
Можно ли послать сигнал от сервера клиенту?
    #38805734
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shura223Периодический опрос базы для такого, ИМХО, будет неправильным решением.Нет. Как раз поллинг - это самое правильное решение.
Серверу нахрен не надо кого-то там оповещать, он и без этого нормально работает. Это клиенту без сведений об изменениях жизнь не мила - вот пусть и пыхтит.
...
Рейтинг: 0 / 0
Можно ли послать сигнал от сервера клиенту?
    #38805789
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akinashura223Периодический опрос базы для такого, ИМХО, будет неправильным решением.Нет. Как раз поллинг - это самое правильное решение.
Серверу нахрен не надо кого-то там оповещать, он и без этого нормально работает. Это клиенту без сведений об изменениях жизнь не мила - вот пусть и пыхтит.
вот тут только не известно, кто больше пыхтеть будет..
если один клиент - как бы ну..
а если 100+ ? для каждого клиента мелочь, а от 100+ клиентов - для сервера не очень...
...
Рейтинг: 0 / 0
Можно ли послать сигнал от сервера клиенту?
    #38806234
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадявот тут только не известно, кто больше пыхтеть будет..
если один клиент - как бы ну..
а если 100+ ? для каждого клиента мелочь, а от 100+ клиентов - для сервера не очень...
А вот это уже забота программиста. И если он неспособен ни на что большее, кроме как заставить клиента слать на сервер пухлый и тяжёлый запрос, то он ССЗБ.
На сервере должна работать логика фиксации факта изменения, которые могут быть затребованы клиентом, в форме, позволяющей получить сведения лёгким запросом, и сброс флага по факту запроса. Компактная MEMORY-таблица подойдёт для многопользовательской версии, а для однопользовательской достаточно глобальной пользовательской переменной.
...
Рейтинг: 0 / 0
Можно ли послать сигнал от сервера клиенту?
    #38806408
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akinaвадявот тут только не известно, кто больше пыхтеть будет..
если один клиент - как бы ну..
а если 100+ ? для каждого клиента мелочь, а от 100+ клиентов - для сервера не очень...
А вот это уже забота программиста. И если он неспособен ни на что большее, кроме как заставить клиента слать на сервер пухлый и тяжёлый запрос, то он ССЗБ.
На сервере должна работать логика фиксации факта изменения, которые могут быть затребованы клиентом, в форме, позволяющей получить сведения лёгким запросом, и сброс флага по факту запроса. Компактная MEMORY-таблица подойдёт для многопользовательской версии, а для однопользовательской достаточно глобальной пользовательской переменной.
это понятно, что всё решаемо, но легкий или тяжёлый запрос - это всё примочки. это нагрузка на сервер. не большая, но нагрузка.
при небольшом количестве клиентов ...
а если сервак нагружен обработкой, а тут ещё и "пустые" запросы...
всё, конечно, звисит от конкретной ситуации.
как вариант, такое можно разрешить трёхзвенной архитектурой.
...
Рейтинг: 0 / 0
Можно ли послать сигнал от сервера клиенту?
    #38806443
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяесли сервак нагружен обработкой, а тут ещё и "пустые" запросы...Ерунда это всё. При правильно построенной системе такой check-запрос больше нагрузит сетевую подсистему сервера, чем сам SQL-сервер. И уж во всяком случае это будет дешевле, чем запуск стороннего приложения.
Нет, никто не мешает написАть UDF-ку с пуш-сервером. Но не дофига ли чести такой мелкой задаче?
...
Рейтинг: 0 / 0
Можно ли послать сигнал от сервера клиенту?
    #38806451
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Можно ли послать сигнал от сервера клиенту?
    #38806453
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторSELECT ... INTO OUTFILE writes the selected rows to a file. Column and line terminators can be specified to produce a specific output format.

SELECT ... INTO OUTFILE можно делать хоть в пайп, хоть в консоль, хоть в stdout
...
Рейтинг: 0 / 0
Можно ли послать сигнал от сервера клиенту?
    #38806888
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЕрунда это всё. При правильно построенной системе такой check-запрос больше нагрузит сетевую подсистему сервера, чем сам SQL-сервер. И уж во всяком случае это будет дешевле, чем запуск стороннего приложения.
Нет, никто не мешает написАть UDF-ку с пуш-сервером. Но не дофига ли чести такой мелкой задаче?
вопрос о нагруженности в целом для ситемы, а не конкретно для sql сервера. даже при нынешних мощностях.
для однопользовальской системы - всё по-барабану.
но для хорошо нагруженных - это просто снижение кпд системы и дополнительное требование к железу.
к примеру реальное обновление раз 5-10 секунд, 1000 клиентов, требование: оперативное обновление- что будет с сервером?
1000 запросов в секунду - это много или нет? кпд близок к нулю.
udf вполне подойдет.
http://dba.stackexchange.com/questions/39522/execution-of-a-java-program-by-a-trigger
в общем ничего сложного.
...
Рейтинг: 0 / 0
Можно ли послать сигнал от сервера клиенту?
    #38807352
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяавторЕрунда это всё. При правильно построенной системе такой check-запрос больше нагрузит сетевую подсистему сервера, чем сам SQL-сервер. И уж во всяком случае это будет дешевле, чем запуск стороннего приложения.
Нет, никто не мешает написАть UDF-ку с пуш-сервером. Но не дофига ли чести такой мелкой задаче?
вопрос о нагруженности в целом для ситемы, а не конкретно для sql сервера. даже при нынешних мощностях.
для однопользовальской системы - всё по-барабану.
но для хорошо нагруженных - это просто снижение кпд системы и дополнительное требование к железу.
к примеру реальное обновление раз 5-10 секунд, 1000 клиентов, требование: оперативное обновление- что будет с сервером?
1000 запросов в секунду - это много или нет? кпд близок к нулю.
udf вполне подойдет.
http://dba.stackexchange.com/questions/39522/execution-of-a-java-program-by-a-trigger
в общем ничего сложного.

тычяча клиентов в 5-10 секунд - это нагрузка?.

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

вот несёшь ты 30 кг веса - нагрузка ? нет, это просто вес. вот если ты подымаешь тяжесть и растягиваешь мышцы - вот это высокая нагрузка.

1000 одновременных подключений к базе... у меня на сервере когда 1000 подкючений, происходит что... 1000 подключений в разные участки дерева дописывают новый елемент, и идет перещот агрегированных данных заданием с запуском раз в секунду. и как тебе сказать про нагрузку...1000 подключений, для простоты возьми на коме и в цикле 1000 раз сгенерируй данные на 4кб и запиши их в отдельный файл, посмотри на время, вторым заходом в цикле щитай эти 1000 файлов меняя в них чтото и записывая... засеки время.. сколько времени подобное на лептопе занимает?!


для наглядности
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
$start = time();

for($i=1;$i<1000;$i++)
{
$l = '';
while(strlen($l)< 4096)
{
	$l .= md5(microtime());
}

file_put_contents("cache/$i.temp", $l);

}

echo time() - $start;
//12 секунд



$start = time();

for($i=1;$i<1000;$i++)
{
$l = file_get_contents("cache/$i.temp");

for($j=1;$j<100;$j++)
{	
	$r = md5(microtime());

	$p = mt_rand(0,strlen($l) - strlen($r))-1;
	
	$p = substr($l,0,$p) . $r . substr($l,$p + strlen($r));
	
	$l = $p;
}

file_put_contents("cache/$i.temp", $l);

}

echo time() - $start;
//17 секунд заняло



это на наутбуке, далек не и7. и не ссд диск - и торенты не отключал

ЗЫ
не надо заранее переживать за сервер.
переживать надо, когда начинаються отказы - я не призываю сделать заведомо брак, для этого существуют испытания системы имитируя нарочий нагрузки и чуть выше).
...
Рейтинг: 0 / 0
Можно ли послать сигнал от сервера клиенту?
    #38807364
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну я могу привести пример, когда скачивание торентов кладет далеко не слабую машину...
надо рассматривать всю систему в целом.
и если есть новые методы обеспечивающие более "правильную" работу систему - надо научиться их использовать.
если есть возможность заменить 1000 обращений к серверу в сек на рассылку от сервера раз 10сек - разве не стоит использовать такое?
...
Рейтинг: 0 / 0
Можно ли послать сигнал от сервера клиенту?
    #38807480
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пасаны, а вот механизм EVENT в Interbase/Firebird это Прогрессивный Хайлоад или им опять остатки ржавого танка некуда приткнуть ?
...
Рейтинг: 0 / 0
Можно ли послать сигнал от сервера клиенту?
    #38807629
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netwindпасаны, а вот механизм EVENT в Interbase/Firebird это Прогрессивный Хайлоад или им опять остатки ржавого танка некуда приткнуть ?
на моё имхо штука полезная. а вообще архитектурно старый бойан войны PUSH/POLL вариантов.
...
Рейтинг: 0 / 0
Можно ли послать сигнал от сервера клиенту?
    #38808244
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяну я могу привести пример, когда скачивание торентов кладет далеко не слабую машину...
надо рассматривать всю систему в целом.
и если есть новые методы обеспечивающие более "правильную" работу систему - надо научиться их использовать.
если есть возможность заменить 1000 обращений к серверу в сек на рассылку от сервера раз 10сек - разве не стоит использовать такое?

я написал пример, исключительно к фразе 1000 клиентов за 15 секунд создают нагрузку на сервер. лишь пример что это не нагрузка.

а сдесь надо смотреть исключительно на архитектуру.

зачем мы часто обращаемся..если чтобы часто получать данные, то надо обращаться и получать.

если же мы хотим просто в режиме реального времени узнавать о изменениях - надо оповещать.

а то что ТС написал, не понятно что ему нужно - часто данные забирать , правда иногда может оказаться что данных нету, или в режиме реального времени отслеживать.

(а то какбы на 1000 клиентов которым раз в 5сек надо новые данные получить) брать ещо 1000 спамов пускать по сети, тоже не блещет результатом решение.

ЗЫ
IT - первая буква не зря означает информационные. и основная задача - передавать информацию, а не данные.
если на 1000 обращений 999 будут холостые, то это не получение информации - это получение муссора.

если на 1000 обращений 999 забирают данные, и мы 1000 делали оповещений - последнее такойже мусор. зачем передавать по сети то, что и так извесно.

вот моя точка зрения относительно того, стоит или не стоит использовать оповещения.

===========
вопрос второй, как оповещения организовать.
научить базу это делать, или база лишь в таблицу мемори помещает метки о оповещении, а кроном крутиться скрипт который постоянно смотрит туда и оповещает уже он.

User difined function - не утверждаю, а лишь предполагаю, что как и везде это костыль... тоесть то что существенно понизит производительность.

то наверно лучше по крону.

ЗЫ
мыж понимаешь что скомпилированя процедура на языке мускла в байткод, это по сути ....

скажем у субд есть своя работа по работе с автоинкрементом...где есть команда по сути

по адресу записаным тамто, взять значение, и добавить единицу.

то байт код полученый из строки set @a=@a + 1; будет аналогичным.

сделать такойже юдф, єто запуск отдельной программы, если посмотреть в глубь, копирование туда окружения, и запуск тамошнего кода. вот это копирование и запуск отдельного процесса, и понижает производительность.

подозреваю что если (udf наша пускай somefunc(a,b,c):integer )
то если в триггере вообще сделать вместо

IF @need > 0 THEN
NEW.a = somefunc(a,b,c);
ELSE
NEW.a = 0;
END IF;

NEW.a=somefunc(a,b,c); а условие надо или не надо щитать перенести в юдф, то этим сразу
и на 1000 запросов в 10 секунд возможно положим сервер.

хотя если я ошибаюсь, и привлечение юдв(лучше всего на тригере проверить) не меняет существенно производительности, то да можно расматривать.
...
Рейтинг: 0 / 0
Можно ли послать сигнал от сервера клиенту?
    #38809093
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex564657498765453,
ну рассылка с сервера должна иметь не самоцель рассылки, а только подписчикам, их может быть как 1 так и 1000+
рассылка с сервера позволит облегчить разработку клиента - не нужно в каждой форме/окне генерить опрашивателя. достаточно поставить одного слушателя и он сделает всё и в одном месте - для получения надо просто открыть нужную форму с данными.
я работаю с 3-х звенными структурами и сервер приложений обрабатывает такие ситуации без проблем.
иметь такой инструмент в своём багаже - очень даже хорошо, а использовать - нужно всё и всегда с умом.
я б хотел посмотреть результат, но пока задачи под такое нет, поэтому городить такое без привязки к конкретной ситуации смысла не вижу. если кто-то сможет проверить идеи буду признателен.
...
Рейтинг: 0 / 0
Можно ли послать сигнал от сервера клиенту?
    #38809164
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадярассылка с сервера должна иметь не самоцель рассылки, а только подписчикам, их может быть как 1 так и 1000+
рассылка с сервера позволит облегчить разработку клиента - не нужно в каждой форме/окне генерить опрашивателя. достаточно поставить одного слушателя и он сделает всё и в одном месте - для получения надо просто открыть нужную форму с данными.
Ну это ни разу не задача SQL-сервера! подымай пуш-сервер, и пусть он занимается своим делом...
...
Рейтинг: 0 / 0
Можно ли послать сигнал от сервера клиенту?
    #38809230
Dflz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina, меня трёхзвенка устраивает :)


ну а " послать сигнал от сервера клиенту? " - для самообразования (пока)
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Можно ли послать сигнал от сервера клиенту?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]