我们可以从另一个进程的队列中挑选项目吗?



我有两个进程和一个队列。 第一个项目已由一个进程从队列中选取,但它尚未完成或处于异常状态。 我们可以通过另一个进程直接从队列中挑选第二个项目吗? 第一项将会发生什么。会不会有例外。

正在创建具有锁定的队列项目。如果新进程或同一进程再次运行"获取下一项",则将锁定下一项。第一项将继续被锁定,只有在将项目标记为完成或失败或崩溃过程时,该项目才会获得新状态。

您可以通过用 5 个项目填充队列来轻松测试这一点,然后运行"获取下一个项目",然后在同一进程中再次运行"获取下一个项目"。然后,您现在将有两个锁定的项目。重置运行BP时,会将这两个项目设置为失败,因为它们在您崩溃/重新启动进程之前从未获得新状态。

对不同的进程使用相同的队列通常不是一个好主意。如果您使用相同的进程多次运行它,那么这是绝对可以接受的,但是您需要确保所有操作都是线程安全的。线程错误示例,两个进程不能同时写入同一文件。

最新更新