我正在尝试从一个多线程集群 Windows 服务正在侦听的 oracle 表中获取一份工作。
如果我正在编写 SQL,查询将是这样的:
update job_queue
set status = :inProcess
where status = :waiting and rownum <= 1
returning job_id into :job_id;
因此,仅在一次往返中,并且锁定时间与更新语句一样短,线程就可以处理其工作项。
问题是我如何使用 NHibernate 实现这一点,以便每个线程都可以尽可能快地运行。