Уведомитель для системного трея - запуск при создании новой записи в SQL Server - PullRequest
3 голосов
/ 02 марта 2010

Работа службы поддержки. Поступают новые заявки, создаются записи в таблице SQL, и они выводятся в определенную категорию, где их может забрать любой аналитик.
Интерфейс не уведомляет аналитиков о появлении новых заявок, поэтому ему приходится обновлять интерфейс (браузер), чтобы узнать, поступают ли новые заявки в папку «Для назначения».

Я хотел бы создать уведомитель (похожий на что-то вроде GMail Notifier), который находится в системном трее.

У кого-нибудь есть хорошие отправные точки или возможные фрагменты, которые могли бы вызвать у меня энтузиазм по поводу создания какого-либо уведомления?

Спасибо

Ответы [ 3 ]

2 голосов
/ 05 марта 2010

Опрос является одним из способов сделать это, но если вы используете SQL Server 2005 или более позднюю версию, более элегантным решением является использование уведомлений о запросах SQL Server. Это позволяет вам указать запрос (например, «SELECT ID FROM Tickets») и получать уведомления при изменении результатов. На CodeProject есть отличное руководство о том, как это сделать:

http://www.codeproject.com/KB/database/QueryNotifications.aspx

1 голос
/ 02 марта 2010

Если вы используете .NET, вы можете использовать объект Timer и установить интервал «тика» в 60 секунд. При каждом событии Tick вы опрашиваете таблицу базы данных SQL и сохраняете дату / время последнего создания записи билета в переменной. Затем просто проверьте, не были ли вставлены какие-либо записи заявок с датой / временем создания, превышающими дату / время последнего создания. Вы можете даже добавить другой компонент Timer, чтобы «отсчитывать» до следующего опроса базы данных. Если вы действительно хотели получить эффект, поместите код опроса базы данных в поток BackGroundWorker, чтобы ваш графический интерфейс никогда не отключался, пока вы ожидаете соединения с SQL Server.

0 голосов
/ 02 марта 2010

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

Создание одного в C # было бы почти тривиально. Но вы не сказали, какой язык вы бы использовали. Я уверен, что парень Java пришел бы сюда и сказал, что это тривиально на Java. Затем зашёл бы парень-питон и сказал бы нам обоим, что может сделать это ещё проще.

...