C# Web 服务互斥
我有两种类型的节点。一个是协调器,另一个是工作节点。
他们通过 SOAP 进行通信。
所有工作节点向协调器发送请求以获取互斥的数据库记录。
我希望协调器将安全记录的 ID 返回给每个工作人员,这样就没有工作人员需要处理相同的记录。
我知道如何使用互斥体对 C# 中的线程执行类似的操作,但我想知道同步 Web 服务调用的最佳实践。
编辑:这就是我遇到的问题
public class Coordinator: System.Web.Services.WebService
{
[WebMethod]
//Returns a mutually record to worker nodes
public int RequestRecordID()
{
//i want to lock here
int id = repository.getFirst(el => el.locked==false);
repository.getByID(id).locked = true;
repository.save();
//unlock here
return id;
}
}
elI have two types of nodes. One is a coordinator and another is a worker node.
They communicate through SOAP.
All worker nodes send requests to the coordinator for a mutually exclusive database record.
I want the coordinator to return the ID of a safe record to each worker so no worker has the same record to process.
I know how to do something similar with threads in C# using mutex, but I wanted to know the best practice for synchronous web service calls.
EDIT: heres the problem I have
public class Coordinator: System.Web.Services.WebService
{
[WebMethod]
//Returns a mutually record to worker nodes
public int RequestRecordID()
{
//i want to lock here
int id = repository.getFirst(el => el.locked==false);
repository.getByID(id).locked = true;
repository.save();
//unlock here
return id;
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我在数据库级别解决了类似的问题:
I had a similar type of issue that I resolved at the database level: