相关疑难解决方法(0)

在数据库中以原子方式标记并返回一组行

我正在编写一个后台服务,需要处理一系列作业,作为记录存储在sqlserver表中.该服务需要找到需要工作的最早的20个作业(where status = 'new'),标记它们(set status = 'processing'),运行它们,然后更新作业.

这是我需要帮助的第一部分.可能有多个线程同时访问数据库,我想确保"标记和返回"查询以原子方式或几乎原样运行.

这项服务将花费相对较少的时间来访问数据库,如果一个作业运行两次,它就不是世界末日,所以我可能会接受一小部分作业运行的概率,以提高代码的简单性.

做这个的最好方式是什么?我正在为我的数据层使用linq-to-sql,但我认为我必须为此调入t-sql.

sql sql-server concurrency linq-to-sql

6
推荐指数
2
解决办法
607
查看次数

标签 统计

concurrency ×1

linq-to-sql ×1

sql ×1

sql-server ×1