如何在windows 8中使用并发提交来自不同用户的多个事务
本文关键字:用户 事务 提交 windows 并发 | 更新日期: 2023-09-27 18:17:30
谁能告诉我在windows 8中如何一次提交多个事务?例如,使用并发需要一次提交所有事务,这可能吗?如果可以,请给我一个在Windows 8中实现的想法。
编辑:多个事务同时来自不同的用户,那么我需要一次提交所有这些事务到服务器。在Windows 8中有并发更新机制。我需要把这些都提交给服务器。请告诉我你的想法。
您有一个数据库服务器接受来自各种客户机的连接,并且您想要同步它们,以便它们都被视为一个大的数据库事务。我认为这件事不能简单地解决。
您需要您的客户端将其数据保存到中间位置(例如,"即将保存"的表),然后偶尔(取决于您定义的"立即")将数据从中间表移动到"真正保存"的表。
您可以在数据库中实现从即将保存到实际保存的转换,因此不需要额外的服务器。
请记住,让多个客户端直接访问您的数据库几乎从来都不是一个好主意。
所以,这很棘手。你的题目听起来像一个数据库问题。当然没有ADO。在Windows 8中,交易在论坛中出现的次数并不多。但是您想要的是将多个用户的请求作为单个原子操作来处理。
让我们看看。有很多方法可以做到这一点。但是让我们假设您有一个具有两个方法的服务。AddToQueue(请求)和CheckStatus(请求)。这两个方法实际上为您创建了一个事务。像这样:
场景1(一切正常)
- 用户A使用AddToQueue(),将他的请求添加$1到银行
- 用户B使用AddToQueue(),将他的请求添加到银行 $2
- 用户A使用CheckStatus()来查看他的请求是否完成,它是PENDING
- 用户C使用AddToQueue(),添加他的请求添加$1到银行
让我们假设队列中的三个项目触发了事务的发生
- 系统批量处理3个现有的请求,在一个事务中执行
- 系统将请求标记为SUCCESS
- 用户A使用CheckStatus()来查看他的请求是否完成,结果是SUCCESS
- 用户B使用CheckStatus()来查看他的请求是否完成,结果是SUCCESS
- 用户C使用CheckStatus()来查看他的请求是否完成,结果是SUCCESS
场景2 (something goes wrong)
- 用户A使用AddToQueue(),将他的请求添加$1到银行
- 用户B使用AddToQueue(),将他的请求添加到银行 $2
- 用户A使用CheckStatus()来查看他的请求是否完成,它是PENDING
- 用户C使用AddToQueue(),添加他的请求添加$1到银行
让我们假设队列中的三个项目触发了事务的发生
- 系统批量处理3个现有的请求,在一个事务中执行
- 系统将请求标记为FAIL(无论出于何种原因)
- 用户A使用CheckStatus()来查看他的请求是否完成,结果是FAIL
- 用户A使用AddToQueue()重试
- 用户B使用CheckStatus()来查看他的请求是否完成,结果是FAIL
- 用户B没有重试
- 用户C使用CheckStatus()来查看他的请求是否完成,结果是FAIL
- 用户C尝试使用AddToQueue()
- 用户D使用AddToQueue(),添加他的请求添加$1到银行
让我们假设队列中的三个项目触发了事务的发生
- 系统批量处理3个现有的请求,在一个事务中执行
- 系统将请求标记为SUCCESS
- 用户A使用CheckStatus()来查看他的请求是否完成,结果是SUCCESS
- 用户B在此场景中不再活动!
- 用户C使用CheckStatus()来查看他的请求是否完成,结果是SUCCESS
- 用户D使用CheckStatus()来查看他的请求是否完成,结果是SUCCESS
有意义吗?这样就可以了。
当然,还有更多需要考虑的。但这是最基本的。
祝你好运!