Форум: "Начинающим";
Текущий архив: 2009.10.25;
Скачать: [xml.tar.bz2];
ВнизОбратная связь Найти похожие ветки
← →
Phoenix © (2009-09-01 08:22) [0]Попробую вкратце описать задачу. У пользователя1 стоит клиентская программа которая отображает некоторый список данных. Другой пользователь2 забил какието данные и сохранил их. В этот момент у пользователя 1 список должен пополнится данными которые забил пользователь 2. Как подобное реализовать? Краем уха слышал что подобное можно зделать при трехзвенке , если такое и вправду реализуемо можно примерчик?
← →
Mike Kouzmine (2009-09-01 09:01) [1]Пока не обновишь, не увидишь. База?
← →
Sergey13 © (2009-09-01 09:13) [2]> [0] Phoenix © (01.09.09 08:22)
> у пользователя 1 список должен пополнится
Почему должен то? Кому должен? Смысла в этом практически никакого. В 99.9% случаев.
← →
Медвежонок Пятачок © (2009-09-01 09:26) [3]Краем уха слышал что подобное можно зделать при трехзвенке
а я краем глаза видел, что пользователь №2 получает данные тогда, когда они ему реально становятся нужны
← →
Phoenix © (2009-09-01 09:54) [4]>>Почему должен то? Кому должен? Смысла в этом практически никакого. В 99.9% случаев.
В данном случае, пользователь1 должен увидеть что произошло некоторое изменение в данных и отреагировать на них.
← →
Phoenix © (2009-09-01 09:56) [5]Удалено модератором
Примечание: мат
← →
Медвежонок Пятачок © (2009-09-01 10:08) [6]В данном случае, пользователь1 должен увидеть что произошло некоторое изменение в данных и отреагировать на них.
Даже если он выключил программу и пошел пописать?
← →
Sergey13 © (2009-09-01 10:13) [7]> [4] Phoenix © (01.09.09 09:54)
> В данном случае
Опиши предметную область твоего "случая".
> [5] Phoenix © (01.09.09 09:56)
вот именно по программированию, потому за базаром следи.
← →
Alf (2009-09-01 10:22) [8]
> Phoenix © (01.09.09 08:22)
Решение простое - бродкаст месседж
← →
pavel_guzhanov © (2009-09-01 10:24) [9]в базе делай триггер, который реагирует на изменения и выдает event. У пользователя1 программа реагирует на event и обновляет данные из базы.
← →
Alf (2009-09-01 10:26) [10]
> pavel_guzhanov © (01.09.09 10:24) [9]
> в базе делай триггер, который реагирует на изменения и выдает event.
Интересно - у него база умеет делать евенты :) или может вообще базы никакой нет...
← →
Сергей М. © (2009-09-01 10:26) [11]
> пользователь1 должен увидеть что произошло некоторое изменение
> в данных и отреагировать на них
Например, настучать по репе пользователю2, который не спрося разрешения у пользователя1 взял да изменил тот же самый элемент списка, который пользователь1 в поте лица набирал целый час ?
← →
Alf (2009-09-01 10:28) [12]
> Сергей М. © (01.09.09 10:26) [11]
Эта проблема решаема очень просто
← →
pavel_guzhanov © (2009-09-01 10:28) [13]
> > pavel_guzhanov © (01.09.09 10:24) [9]
> > в базе делай триггер, который реагирует на изменения и
> выдает event.
>
> Интересно - у него база умеет делать евенты :) или может
> вообще базы никакой нет...
Ну да, видимо надо было написать вначале "Если спользуется база, и она умеет делать эвенты..." :о)
← →
Phoenix © (2009-09-01 10:33) [14]Короче. Предметная область - приём заявок по техническому обслуживанию. Т.е пользователь забивает заявку на обслуживание. Как только он её забил и сохранил у системотехника должен появится "флажок" мол новая завка обрати внимание и обновится перечень заявок.
База Firebird 1.5
← →
Ega23 © (2009-09-01 10:38) [15]
> Как только он её забил и сохранил у системотехника должен
> появится "флажок" мол новая завка обрати внимание и обновится
> перечень заявок.
Вот и запрашивай по таймеру - а не появилось ли новых заявок? Очень простой запрос, очень лёгкий. И если что-то пришло в БД новое - пусть у твоего "системотехника" в углу формы флажок моргает, типа аськи. А вот захочет он обновить у себя данные или нет - это уже исключительно его личное дело.
← →
Сергей М. © (2009-09-01 10:40) [16]
> у системотехника должен появится "флажок" мол новая завка
> обрати внимание и обновится перечень заявок
Ну вот он увидел этот флажок, открыл перечень заявок и .. не увидел новую заявку ! Потому что юзер набив заявку тут же, скажем, уничтожил ее как ошибочную.. Что, еще один флажок вешать, типа ложная тревога ?)
← →
Phoenix © (2009-09-01 10:45) [17]
> Вот и запрашивай по таймеру - а не появилось ли новых заявок?
> Очень простой запрос, очень лёгкий. И если что-то пришло
> в БД новое - пусть у твоего "системотехника" в углу формы
> флажок моргает, типа аськи.
Рассматривал этот вариант но я вообще хотел узнать как можно реализовать вариант именно с обратной работой от сервера к клиенту, как это реализовать.
> Что, еще один флажок вешать, типа ложная тревога ?)
Нет. Пользователь не имеет возможности удалять заявку а только менять её статус, т.е если изменить статус на "ошибочная".
← →
Сергей М. © (2009-09-01 10:52) [18]
> только менять её статус
Да какая разница ?
Все равно ложная тревога.
Ну а в целом, если не боишься что юзер и системотехник тебя поколотят за непродуманную логику, можешь задействовать механизм FB-ивентов, если его использование позволяют сетевые условия.
← →
Ega23 © (2009-09-01 10:53) [19]
> Рассматривал этот вариант но я вообще хотел узнать как можно
> реализовать вариант именно с обратной работой от сервера
> к клиенту, как это реализовать.
Единственно универсальный способ - с клиента мониторить данные на сервере. Всякие триггера, UDP-рассылка и т.п. со стороны сервера, в общем случае, ненадёжны.
Как реализовывать мониторинг со стороны клиента - есть масса способов. Начиная от обновления по таймеру "всего" (отвратительный способ), обновление по таймеру только того, что произошло с момента последнего обновления, мониторинг изменений в БД с нотификацией пользователю и т.д.
З.Ы. Как только какая-то программа начинает себя из интернета обновлять без моего ведома, а также если у этой программы нет возможности отключения самообновления - я такую программу моментально сношу.
← →
pavel_guzhanov © (2009-09-01 11:14) [20]Firebird 1.5 может делать эвенты. Обрати внимание на
pavel_guzhanov © (01.09.09 10:24) [9]
← →
Медвежонок Пятачок © (2009-09-01 11:37) [21]Firebird 1.5 может делать эвенты. Обрати внимание на
Аха....
Юзер №1 ввел заявку.
Сработал евент.
Юзер номер два должен ее обработать.
Но он в это время ходил курить и программа была выключена.
Либо он ребутил комп во время этого самого евента.
Пришел он с покурки (или загрузил программу) - и где будет тот евент?
← →
Сергей М. © (2009-09-01 11:43) [22]
> Пришел он с покурки .. - и где будет тот евент?
А поколотят-то в результате автора сего программного шедевра)
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2009.10.25;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.065 c