Ведение журнала событий ?

Joined
Dec 9, 2004
Messages
6
Reaction score
0
Age
50
Location
Кировоград
Delphi7+MySQL+MyDAC
Задача:
1. Ведение журнала активных пользователей (приблизительно представляю так: в таблице users прописать поле online в котором 0 или 1 активный пользователь или нет) но вопрос в случае аварийного выпадения юзера - как обнулить это поле?
2. Таблица events где хранится: (Добавлено, Удалено, Редактировано) т.е.хочу реализовать журнал событий типа в 1с (Пользователь "Пупкин" "редактировал/добавил/удалил" запись "Клиента N"). Где лучше хранить журнал - в тойже базе где и все таблици - или лучше писать текстовый файлик?
 

van4ello

Member
Joined
Nov 12, 2005
Messages
69
Reaction score
14
Location
ukraine
1. по таймауту опрашивать пользователя,не ответил,значит он отвалился
2. лучше писать отдельной базой + отдельную оболочку для просмотра этого файла

имхо

Дополнение:
1. Я имел ввиду добавить непосредственно свою процедуру на сервер, я погляжу точно как примерно это сделать и напишу(в смысле что в функции написать:))
 
Last edited by a moderator:

Wern

Member
Joined
Jan 10, 2007
Messages
21
Reaction score
2
Location
Казань
1. Что мешает каждый раз, когда необходимо получить данные, опрашивать пользователей? зачем вообще хранить таблицу?
 
Joined
Dec 9, 2004
Messages
6
Reaction score
0
Age
50
Location
Кировоград
1. Что мешает каждый раз, когда необходимо получить данные, опрашивать пользователей? зачем вообще хранить таблицу?
Не понял?
Что значить опрашивать пользователей - не имея отдельной таблици для определения их имен ;-(((
 
Joined
Dec 9, 2004
Messages
6
Reaction score
0
Age
50
Location
Кировоград
Для van4ello:
'1. по таймауту опрашивать пользователя,не ответил,значит он отвалился'
А таймаут - это в MySQL прописывать надо (я так понимаю)? Не подскажите как?
Дело в том что если юзер есть то он 1, если нет то 0. Это в том случае если я просматриваю их присутствие - а если он пытается повторно зайти прога ему скажет что он уже есть.
 
Last edited by a moderator:

sput

Member
Joined
Oct 10, 2006
Messages
15
Reaction score
2
Location
Дома
И ещё одно решение

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

disas

Member
Joined
Nov 16, 2004
Messages
32
Reaction score
0
Age
40
Пусть юзер каждую минуту пишет в особую таблицу текущее время сервера. Не делавшие 2 мин такой записи юзеры считаются погибшими.
Не самое лучшее предложение в плане оптимизации.

1. Начнем с конца: таблицу events лучше хранить в базе т.к. файл это в данном случае тоже базы только аскетичная. Зачем менять нормальную базу на аскетичную?
2. Активность пользователей можно определять так: каждые 10 минут на сервере запускается прога: для всех активных пользователей просматривается последний event. Если последнее событие было более NNN минут назад - пользьзователь не активен.
 

clubreseau

Member
Joined
Oct 24, 2009
Messages
5
Reaction score
0
Age
47
Пусть юзер каждую минуту пишет в особую таблицу текущее время сервера. Не делавшие 2 мин такой записи юзеры считаются погибшими.
 

heath

Member
Joined
Jan 12, 2010
Messages
6
Reaction score
0
Клиентская программа периодически делает запись ID пользователя и время сервера в таблицу БД. Поле, куда записывается ID, должно быть уникальным. После нормального завершения клиент удаляет эту запись. На стороне сервера периодически запускается процедура, которая удаляет "просроченные" записи. Надо только придумать как запускать эту процедуру.
 
Top