1

我正在尝试从一个多线程集群 Windows 服务正在侦听的 oracle 表中获取一份工作。

如果我正在编写 SQL,查询将是这样的:

update job_queue 
set status = :inProcess 
where status = :waiting and rownum <= 1 
returning job_id into :job_id;

因此,仅在一次往返中,并且锁定时间与更新语句一样短,线程就可以处理其工作项。

问题是我如何使用 NHibernate 实现这一点,以便每个线程都可以尽可能快地运行。

4

1 回答 1

1

如果您想编写一些代码来为作业队列提供服务,并且您使用 Oracle 作为数据库,我建议您查看 Oracle Advanced Queuing (Oracle AQ)。它可以处理多个并发作业,并且还具有许多其他功能。

于 2012-05-05T09:04:52.730 回答