Sql 数据库表作为多个实例的作业队列

Sql 数据库表作为多个实例的作业队列,sql,database,concurrency,jobs,Sql,Database,Concurrency,Jobs,假设我有一个表,其中包含一些需要执行的作业,这些作业由同一服务的多个实例读取。 我有一个status列,每个实例都在查询尚未获取的第一行(按状态筛选),然后在同一事务中更改此状态 如何防止多个实例读取同一作业,然后更新其状态并同时执行该作业?在运行查询时锁定表。锁定整个表是否有效?没有更好的办法了吗。数据库有很多不同的锁定方法。但是,具体情况通常取决于数据库。我的评论是泛泛的,因为你的问题是泛泛的。

假设我有一个表,其中包含一些需要执行的作业,这些作业由同一服务的多个实例读取。 我有一个status列,每个实例都在查询尚未获取的第一行(按状态筛选),然后在同一事务中更改此状态


如何防止多个实例读取同一作业,然后更新其状态并同时执行该作业?

在运行查询时锁定表。锁定整个表是否有效?没有更好的办法了吗。数据库有很多不同的锁定方法。但是,具体情况通常取决于数据库。我的评论是泛泛的,因为你的问题是泛泛的。