用于复制多线程文件夹结构的CMIS访问者模式?

时间:2016-05-13 15:06:34

标签: java multithreading design-patterns alfresco cmis

我想将一个特定的文件夹结构从一个Alfresco实例复制到另一个实例。

此文件夹结构包含大量应移动的数据,但只包含不超过30天的数据。

我想实现一个基于访问者模式的java工具,它遍历文件夹结构。如果访问了节点,我会锁定节点并继续前进,如果没有访问,我会将节点复制到另一个实例。

这是一个好主意还是有人有其他想法或经验?

此致 Kaffi

1 个答案:

答案 0 :(得分:1)

CMIS不知道如何锁定文件夹节点。它只知道如何结帐文件。

如果您使用cmis:objectId作为键并将路径用作值,那么对于符合条件的文件夹,将键值对写入键值存储(如redis)。我提议像redis而不是像hashmap这样的内存结构,因为你的注释是你的结构很大,并且你可能有多个进程遍历层次结构,寻找符合你标准的文件夹节点。

然后,您可以从键值存储中读取一个或多个“使用者”进程,并找到它找到的每个对象,使用该路径在目标存储库中重新创建文件夹结构。