用于多线程复制文件夹结构的 CMIS 访客模式?
CMIS Visitor pattern for copying folder structure multithreaded?
我想将特定文件夹结构从一个 Alfresco 实例复制到另一个实例。
此文件夹结构包含大量应该移动的数据,但只有这一个不超过 30 天。
我想实现一个基于访问者模式的 java 工具,它遍历文件夹结构。如果访问了该节点,我将锁定该节点并继续,如果未访问该节点,我将将该节点复制到另一个实例。
这是个好主意还是有人有其他想法或经验?
问候
卡菲
CMIS 不知道如何锁定文件夹节点。它只知道如何签出文件。
如果您使用 cmis:objectId 作为键并使用路径作为值,那么对于符合您条件的文件夹,将键值对写入键值存储,如 redis。由于您评论说您的结构非常庞大,并且您可能有多个进程遍历层次结构来寻找满足您条件的文件夹节点,因此我建议使用像 redis 这样的东西而不是 hashmap 这样的内存结构。
然后您可以让一个或多个 "consumer" 进程从键值存储中读取,并针对它找到的每个对象,使用路径在目标存储库中重新创建文件夹结构。
我想将特定文件夹结构从一个 Alfresco 实例复制到另一个实例。
此文件夹结构包含大量应该移动的数据,但只有这一个不超过 30 天。
我想实现一个基于访问者模式的 java 工具,它遍历文件夹结构。如果访问了该节点,我将锁定该节点并继续,如果未访问该节点,我将将该节点复制到另一个实例。
这是个好主意还是有人有其他想法或经验?
问候 卡菲
CMIS 不知道如何锁定文件夹节点。它只知道如何签出文件。
如果您使用 cmis:objectId 作为键并使用路径作为值,那么对于符合您条件的文件夹,将键值对写入键值存储,如 redis。由于您评论说您的结构非常庞大,并且您可能有多个进程遍历层次结构来寻找满足您条件的文件夹节点,因此我建议使用像 redis 这样的东西而不是 hashmap 这样的内存结构。
然后您可以让一个或多个 "consumer" 进程从键值存储中读取,并针对它找到的每个对象,使用路径在目标存储库中重新创建文件夹结构。