简化:
我在activemq中有一个队列。当从队列中读取某条消息时,我想锁定队列,直到该进程结束处理接收到的消息。
详细解释:
我有一个拥有大量用户的系统。每次用户更改他在系统中的状态(配置文件、角色、访问权限、资产所有权等)时,我还需要使用这些更改更新第三方服务器。该第三方与我们是分开的,他们向我公开的 api 允许我一次只更新一个用户,大约需要一秒钟。
我正在使用 ActiveMQ 将主更新过程与更新第三方系统分离。
每晚一次,我会收到一个可能包含数千个用户更改的提要文件。由于这是一项关键任务,并且更新第三方对时间不那么敏感,并且由于更新第三方可能需要从同一个表中读取,所以主进程是批量更新,我需要锁定队列。意思是,我希望 ActiveMQ 为我在主进程中更改的每个用户获取消息,但我也希望 ActiveMQ 保留这些消息,直到主进程完成。
ActiveMQ 中的任何内置机制可以做到这一点吗?