gpt4 book ai didi

java - 遍历 Lotus Domino 中的每个文档

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:58:32 25 4
gpt4 key购买 nike

我想遍历(可能很大)Lotus Domino 数据库中的每个文档,并能够在处理中断(网络连接错误、应用程序重新启动等)时从最后一个文档继续它。我没有数据库的写入权限。

我正在寻找一种方法,让我不必从服务器上下载那些已经处理过的文档。因此,我必须将一些启动信息传递给服务器,哪个文档应该是(可能重新启动的)处理中的第一个。

  1. 我检查了 AllDocuments 属性和 DocumentColletion.getNthDocument 方法,但此属性未排序,所以我猜两次调用之间的顺序可能会发生变化。

  2. 另一个想法是使用 formula query但似乎无法使用这些查询进行排序。

  3. 第三个想法是 Database.getModifiedDocuments 方法和相应的 Document.getLastModified 方法。看起来不错但是在我看来,返回集合的排序没有记录,并且基于创建时间而不是上次修改时间。

    这是一个基于 official example 的示例代码:

    System.out.println("startDate: " + startDate);
    final DocumentCollection documentCollection =
    database.getModifiedDocuments(startDate, Database.DBMOD_DOC_DATA);

    Document doc = documentCollection.getFirstDocument();
    while (doc != null) {
    System.out.println("#lastmod: " + doc.getLastModified() +
    " #created: " + doc.getCreated());
    doc = documentCollection.getNextDocument(doc);
    }

    打印如下:

    startDate: 2012.07.03 08:51:11 CEDT
    #lastmod: 2012.07.03 08:51:11 CEDT #created: 2012.02.23 10:35:31 CET
    #lastmod: 2012.08.03 12:20:33 CEDT #created: 2012.06.01 16:26:35 CEDT
    #lastmod: 2012.07.03 09:20:53 CEDT #created: 2012.07.03 09:20:03 CEDT
    #lastmod: 2012.07.21 23:17:35 CEDT #created: 2012.07.03 09:24:44 CEDT
    #lastmod: 2012.07.03 10:10:53 CEDT #created: 2012.07.03 10:10:41 CEDT
    #lastmod: 2012.07.23 16:26:22 CEDT #created: 2012.07.23 16:26:22 CEDT

    (我在这里没有使用任何 AgentContext 来访问数据库。数据库对象来自 session.getDatabase(null, databaseName) 调用。)

有什么方法可以使用 Lotus Domino Java API 可靠地做到这一点?

最佳答案

如果您有权更改数据库,或者可以要求某人这样做,那么您应该创建一个按唯一键或修改日期排序的 View ,然后只存储指向最后一个文档的“指针”已处理。

除此之外,您必须自己维护一份以前处理过的文档的列表。在这种情况下,您可以使用 AllDocuments 属性并循环访问它们。使用 GetFirstDocument 和 GetNextDocument,因为据报道它们比 GetNthDocument 更快。

或者,您可以进行两次处理,一次收集所有文档的 UNID 列表,您将存储该列表,然后进行第二次处理以处理您拥有的 UNID 列表中的每个文档(使用 GetDocumentByUNID 方法)。

关于java - 遍历 Lotus Domino 中的每个文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13020620/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com