![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 07.04.2010
Сообщений: 218
|
![]()
Делаю небольшую программу (клиентская+серверная часть). Используют программу пользователи и администраторы домена.
У пользователей есть возможность добавлять заявки, у администраторов возможность просматривать и закрывать их. У меня сейчас реализована функция оповещения о новых заявках по следующему алгоритму: 1) Пользователь добавляет новую заявку, ей в поле статус присваивается значение 0 - непрочитанная. 2)Каждые 60 секунд (по таймеру) происходит проверка: является ли клиент администратором домена (проверка осуществляется хранимой процедурой на сервере) - если является:
Недостатком такого алгоритма является то, что у администраторов программа может быть запущена в разное время, следовательно, отсчет таймера разный, и как только один из администраторов получает оповещение о новой заявке, ей присваивается статус прочитанной и другие админы уже не получают уведомление о новой заявке. Вопрос следующий: можно ли улучшить данный алгоритм или может быть нужно действовать по-другому? Можно ли как-то синхронизировать таймеры у всех администраторов? Последний раз редактировалось Ericnex; 22.06.2018 в 09:19. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 19,042
|
![]()
Можно статус прочтения вообще не иметь, а сделать еще табличку вида:
ДопТаблица (ИдЗаявки, ИдАдмина) и выбирать не прочитанные, например, запросом Код:
add Если появится новый админ, то для него не прочитанными будут все существующие заявки )) Можно огульно в этом случае скриптом дополнить для него табличку ДопТаблица. Или усложнить запрос, добавив, например, условие по дате, тогда не за всю историю, а начиная с какой-то даты будет выводится список не прочитанных
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 22.06.2018 в 10:02. |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 07.04.2010
Сообщений: 218
|
![]()
Дело еще в том, что у меня нет отдельного справочника "Админы". Я узнаю является ли пользователь администратором домена при запуске программы через хранимую процедуру.
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 17.11.2010
Сообщений: 19,042
|
![]()
Сетевое имя то у него есть. Его и используй вместо ИдАдмина
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Получение окна заголовка на новой строке | CloudStrife | C# (си шарп) | 16 | 15.12.2015 12:43 |
TICQClient получение сообщения | Rec0il | Общие вопросы Delphi | 3 | 31.03.2013 21:34 |
Получение новой матрицы прибавлением к элементам | Petyu | C++ Builder | 5 | 16.03.2013 15:30 |
Получение сообщения idUDPClient | virtuhay266 | Работа с сетью в Delphi | 1 | 07.12.2011 08:33 |
IRC получение сообщения | jone | Работа с сетью в Delphi | 4 | 27.04.2009 21:20 |