|
|
|
Можно ли послать сигнал от сервера клиенту?
|
|||
|---|---|---|---|
|
#18+
Сабж. Смысл в том, что у клиента должно появиться оповещение, если произошло некоторое изменение в БД. Периодический опрос базы для такого, ИМХО, будет неправильным решением. Может сам сервер способен послать определенному клиенту сигнал, когда это требуется, а клиент уже, получив его, будет слать запрос в базу на информацию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2014, 00:03:46 |
|
||
|
Можно ли послать сигнал от сервера клиенту?
|
|||
|---|---|---|---|
|
#18+
shura223Сабж. Смысл в том, что у клиента должно появиться оповещение, если произошло некоторое изменение в БД. Периодический опрос базы для такого, ИМХО, будет неправильным решением. Может сам сервер способен послать определенному клиенту сигнал, когда это требуется, а клиент уже, получив его, будет слать запрос в базу на информацию. извратиться можно. тривиальный способ, база может делать селект в файл, а по крону стартует скрипт который при обнаружении нового файла делает что угодно можно базе разрешить помоему запуск внешних команд, и тут тоже Делай что хочешь --не уверен что второе можно, но помню тема поднималась, и вроде через какойто плагин ктото нашол решение. влюбом случае это криво и косо. база - это хранилище данных. задача вцелом сравнима чтобы дискета, винчестер, сд посылал сигнал что чтото на нём произошло. симкарта чтобы оповещала телефон что у неё место закончилось это всё ересь. нормально чтобы в базу приложение обращалось ... ток лучше сделать таблицу в памяти, и процес запускаемый базой при обнаружении что клиенту х надо сделать у - заносит это во временую таблицу... а клиент делает выборку из неё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2014, 00:35:12 |
|
||
|
Можно ли послать сигнал от сервера клиенту?
|
|||
|---|---|---|---|
|
#18+
shura223Периодический опрос базы для такого, ИМХО, будет неправильным решением.Нет. Как раз поллинг - это самое правильное решение. Серверу нахрен не надо кого-то там оповещать, он и без этого нормально работает. Это клиенту без сведений об изменениях жизнь не мила - вот пусть и пыхтит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2014, 09:07:12 |
|
||
|
Можно ли послать сигнал от сервера клиенту?
|
|||
|---|---|---|---|
|
#18+
Akinashura223Периодический опрос базы для такого, ИМХО, будет неправильным решением.Нет. Как раз поллинг - это самое правильное решение. Серверу нахрен не надо кого-то там оповещать, он и без этого нормально работает. Это клиенту без сведений об изменениях жизнь не мила - вот пусть и пыхтит. вот тут только не известно, кто больше пыхтеть будет.. если один клиент - как бы ну.. а если 100+ ? для каждого клиента мелочь, а от 100+ клиентов - для сервера не очень... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2014, 09:55:00 |
|
||
|
Можно ли послать сигнал от сервера клиенту?
|
|||
|---|---|---|---|
|
#18+
вадявот тут только не известно, кто больше пыхтеть будет.. если один клиент - как бы ну.. а если 100+ ? для каждого клиента мелочь, а от 100+ клиентов - для сервера не очень... А вот это уже забота программиста. И если он неспособен ни на что большее, кроме как заставить клиента слать на сервер пухлый и тяжёлый запрос, то он ССЗБ. На сервере должна работать логика фиксации факта изменения, которые могут быть затребованы клиентом, в форме, позволяющей получить сведения лёгким запросом, и сброс флага по факту запроса. Компактная MEMORY-таблица подойдёт для многопользовательской версии, а для однопользовательской достаточно глобальной пользовательской переменной. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2014, 13:13:41 |
|
||
|
Можно ли послать сигнал от сервера клиенту?
|
|||
|---|---|---|---|
|
#18+
Akinaвадявот тут только не известно, кто больше пыхтеть будет.. если один клиент - как бы ну.. а если 100+ ? для каждого клиента мелочь, а от 100+ клиентов - для сервера не очень... А вот это уже забота программиста. И если он неспособен ни на что большее, кроме как заставить клиента слать на сервер пухлый и тяжёлый запрос, то он ССЗБ. На сервере должна работать логика фиксации факта изменения, которые могут быть затребованы клиентом, в форме, позволяющей получить сведения лёгким запросом, и сброс флага по факту запроса. Компактная MEMORY-таблица подойдёт для многопользовательской версии, а для однопользовательской достаточно глобальной пользовательской переменной. это понятно, что всё решаемо, но легкий или тяжёлый запрос - это всё примочки. это нагрузка на сервер. не большая, но нагрузка. при небольшом количестве клиентов ... а если сервак нагружен обработкой, а тут ещё и "пустые" запросы... всё, конечно, звисит от конкретной ситуации. как вариант, такое можно разрешить трёхзвенной архитектурой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2014, 14:41:12 |
|
||
|
Можно ли послать сигнал от сервера клиенту?
|
|||
|---|---|---|---|
|
#18+
вадяесли сервак нагружен обработкой, а тут ещё и "пустые" запросы...Ерунда это всё. При правильно построенной системе такой check-запрос больше нагрузит сетевую подсистему сервера, чем сам SQL-сервер. И уж во всяком случае это будет дешевле, чем запуск стороннего приложения. Нет, никто не мешает написАть UDF-ку с пуш-сервером. Но не дофига ли чести такой мелкой задаче? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2014, 15:01:13 |
|
||
|
Можно ли послать сигнал от сервера клиенту?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2014, 15:06:44 |
|
||
|
Можно ли послать сигнал от сервера клиенту?
|
|||
|---|---|---|---|
|
#18+
автор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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2014, 15:07:53 |
|
||
|
Можно ли послать сигнал от сервера клиенту?
|
|||
|---|---|---|---|
|
#18+
авторЕрунда это всё. При правильно построенной системе такой check-запрос больше нагрузит сетевую подсистему сервера, чем сам SQL-сервер. И уж во всяком случае это будет дешевле, чем запуск стороннего приложения. Нет, никто не мешает написАть UDF-ку с пуш-сервером. Но не дофига ли чести такой мелкой задаче? вопрос о нагруженности в целом для ситемы, а не конкретно для sql сервера. даже при нынешних мощностях. для однопользовальской системы - всё по-барабану. но для хорошо нагруженных - это просто снижение кпд системы и дополнительное требование к железу. к примеру реальное обновление раз 5-10 секунд, 1000 клиентов, требование: оперативное обновление- что будет с сервером? 1000 запросов в секунду - это много или нет? кпд близок к нулю. udf вполне подойдет. http://dba.stackexchange.com/questions/39522/execution-of-a-java-program-by-a-trigger в общем ничего сложного. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2014, 22:07:04 |
|
||
|
Можно ли послать сигнал от сервера клиенту?
|
|||
|---|---|---|---|
|
#18+
вадяавторЕрунда это всё. При правильно построенной системе такой 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. это на наутбуке, далек не и7. и не ссд диск - и торенты не отключал ЗЫ не надо заранее переживать за сервер. переживать надо, когда начинаються отказы - я не призываю сделать заведомо брак, для этого существуют испытания системы имитируя нарочий нагрузки и чуть выше). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2014, 06:31:55 |
|
||
|
Можно ли послать сигнал от сервера клиенту?
|
|||
|---|---|---|---|
|
#18+
ну я могу привести пример, когда скачивание торентов кладет далеко не слабую машину... надо рассматривать всю систему в целом. и если есть новые методы обеспечивающие более "правильную" работу систему - надо научиться их использовать. если есть возможность заменить 1000 обращений к серверу в сек на рассылку от сервера раз 10сек - разве не стоит использовать такое? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2014, 09:47:14 |
|
||
|
Можно ли послать сигнал от сервера клиенту?
|
|||
|---|---|---|---|
|
#18+
пасаны, а вот механизм EVENT в Interbase/Firebird это Прогрессивный Хайлоад или им опять остатки ржавого танка некуда приткнуть ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2014, 14:55:29 |
|
||
|
Можно ли послать сигнал от сервера клиенту?
|
|||
|---|---|---|---|
|
#18+
netwindпасаны, а вот механизм EVENT в Interbase/Firebird это Прогрессивный Хайлоад или им опять остатки ржавого танка некуда приткнуть ? на моё имхо штука полезная. а вообще архитектурно старый бойан войны PUSH/POLL вариантов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2014, 19:20:01 |
|
||
|
Можно ли послать сигнал от сервера клиенту?
|
|||
|---|---|---|---|
|
#18+
вадяну я могу привести пример, когда скачивание торентов кладет далеко не слабую машину... надо рассматривать всю систему в целом. и если есть новые методы обеспечивающие более "правильную" работу систему - надо научиться их использовать. если есть возможность заменить 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 секунд возможно положим сервер. хотя если я ошибаюсь, и привлечение юдв(лучше всего на тригере проверить) не меняет существенно производительности, то да можно расматривать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2014, 13:36:04 |
|
||
|
Можно ли послать сигнал от сервера клиенту?
|
|||
|---|---|---|---|
|
#18+
alex564657498765453, ну рассылка с сервера должна иметь не самоцель рассылки, а только подписчикам, их может быть как 1 так и 1000+ рассылка с сервера позволит облегчить разработку клиента - не нужно в каждой форме/окне генерить опрашивателя. достаточно поставить одного слушателя и он сделает всё и в одном месте - для получения надо просто открыть нужную форму с данными. я работаю с 3-х звенными структурами и сервер приложений обрабатывает такие ситуации без проблем. иметь такой инструмент в своём багаже - очень даже хорошо, а использовать - нужно всё и всегда с умом. я б хотел посмотреть результат, но пока задачи под такое нет, поэтому городить такое без привязки к конкретной ситуации смысла не вижу. если кто-то сможет проверить идеи буду признателен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2014, 09:44:10 |
|
||
|
Можно ли послать сигнал от сервера клиенту?
|
|||
|---|---|---|---|
|
#18+
вадярассылка с сервера должна иметь не самоцель рассылки, а только подписчикам, их может быть как 1 так и 1000+ рассылка с сервера позволит облегчить разработку клиента - не нужно в каждой форме/окне генерить опрашивателя. достаточно поставить одного слушателя и он сделает всё и в одном месте - для получения надо просто открыть нужную форму с данными. Ну это ни разу не задача SQL-сервера! подымай пуш-сервер, и пусть он занимается своим делом... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2014, 10:39:15 |
|
||
|
|

start [/forum/topic.php?fid=47&fpage=155&tid=1833924]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
43ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 240ms |
| total: | 374ms |

| 0 / 0 |
