3

在支持帮助台上工作。新工单进来,记录在 SQL 表中创建,它们被转储到任何分析师都可以提取的特定类别。
当有新工单时,前端不会通知分析师,因此必须不断刷新前端(浏览器)以查看是否有新工单进入“待分配”文件夹。

我想创建一个位于系统托盘中的通知程序(类似于 GMail 通知程序)。

任何人都得到了一些好的起点,或者可能的片段会让我有一些热情去实际创建某种通知器?

谢谢

4

3 回答 3

2

轮询是执行此操作的一种方法,但如果您使用的是 SQL Server 2005 或更高版本,则更优雅的解决方案是使用 SQL Server 查询通知。这允许您指定查询(例如“SELECT ID FROM Tickets”)并在结果更改时收到通知。关于如何在 CodeProject 上执行此操作有一个很棒的教程:

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

于 2010-03-05T16:32:20.107 回答
1

如果您使用的是 .NET,则可以使用 Timer 对象并将“滴答”间隔设置为 60 秒。在每个 Tick 事件中,您将轮询 SQL 数据库表并将最后一个工单记录创建的日期/时间存储在一个变量中。然后只需检查是否插入了任何创建日期/时间大于上次创建日期/时间的工单记录。您甚至可以添加另一个 Timer 组件来“倒计时”到下一次数据库轮询。如果你真的想变得光滑,你可以将数据库轮询代码放在 BackGroundWorker 线程中,这样你的 GUI 在等待 SQL Server 连接时就不会出现空白。

于 2010-03-02T03:11:53.943 回答
0

系统托盘通知器基本上会做与浏览器刷新相同的事情,ping 服务器以获取新记录。您可能希望它每 60 秒“ping”一次您的服务器,或者更快或更慢,具体取决于您希望收到通知的速度。

在 C# 中制作一个几乎是微不足道的。但你没有说你会使用哪种语言。我敢肯定,Java 的人会来这里说它在 Java 中是微不足道的。然后一个蟒蛇人会进来告诉我们两个他可以更轻松地做到这一点。

于 2010-03-02T02:04:47.323 回答