我有多个 Windows 服务实例,每个实例都在不同的服务器上运行。当它在表中找到一条记录时,就会启动每个 Windows 服务。现在预期的功能是,如果其中一个 Windows 服务选择了记录,那么其他 Windows 服务不应该选择相同的记录。实际功能:每个 Windows 服务都应该选择不同的记录。
所有实例都在同时获取相同的记录和处理,这会产生问题。
任何人都可以提出上述解决方案吗?
附加细节:我已经添加了我们正在检查数据集的代码,其中包含记录(我们之前插入以供 Windows 服务处理)然后我们执行一些业务,并发送邮件。问题是由于有多个 Windows 服务实例,我收到了多封不可取的邮件。
DataSet reportsDs = new DataSet();
int ReportID = 0;
int MastReptID = 0;
try
{
reportsDs = stored procedure to get the dataset in which the record is inserted
if (reportsDs != null && reportsDs.Tables[0].Rows.Count > 0)
{
ServiceName.isProcCompleted = false;
for (int rptcnt = 0; rptcnt < reportsDs.Tables[0].Rows.Count; rptcnt++)
{
//some business functions
//send a mail after finishing the above business process
}
}
}