数据 Feed

数据Feed是一个可配置的方法,以推送数据文档到一个服务或为了通过一个API调用获取而把多个文档分组。

下面的例子在数据库中任一此文档的任意数据被通过Moqui EntityFacade修改时推送feed(dataFeedTypeEnumId="DTFDTP_RT_PUSH")以发送文档到 HiveMind.SearchServices.indexAndNotify#HiveMindDocuments 服务。框架自动记录要推送的数据和与它们关联的数据文档内的实体,在创建、更新和删除操作完成时查看变更情况。这是实时获取更新了的数据文档的一个有效方式。

这是一个为了配置一个推送数据Feed的记录的entity-facade-xml的例子:

<xml>
    <moqui.entity.feed.DataFeed dataFeedId="HiveMindSearch" dataFeedTypeEnumId="DTFDTP_RT_PUSH" feedName="HiveMind Search" feedReceiveServiceName="HiveMind.SearchServices.indexAndNotify#HiveMindDocuments"/> 

    <moqui.entity.feed.DataFeedDocument dataFeedId="HiveMindSearch" dataDocumentId="HmProject"/>

    <moqui.entity.feed.DataFeedDocument dataFeedId="HiveMindSearch" dataDocumentId="HmTask"/>
</xml>

每条 DataFeedDocument 记录关联一条 DataDocument 记录到要被包含在此feed中的 DataFeed 记录。

旁注,当你想索引那些作为加载过程的一部分通过一个XML数据文件被加载的数据时,它可能会在Data Feed被加载并被激活前加载。你可以包含一个ServiceTrigger记录的元素,ServiceFacade将在加载过程中调用此服务来为此feed进行索引。例如:

<moqui.entity.ServiceTrigger serviceTriggerId="HM_SEARCH_INIT" statusId="SrtrNotRun" mapString="[dataFeedId:'HiveMindSearch']"
serviceName="org.moqui.impl.EntityServices.index#DataFeedDocuments"/>

上面的DataFeed例子是给一个推送数据Feed的。要为人工拉取设置一个feed,只要在DataFeed记录上设置 dataFeedTypeEnumId="DTFDTP_MAN_PULL"。任意类的数据Feed可以被人工获取,但是此类feed将不会被自动运行。要通过API为任意feed获取文档,像这样使用一条语句:

List<Map> docList = ec.entity.getDataFeedDocuments(dataFeedId, fromUpdateStamp, thruUpdatedStamp)

results matching ""

    No results matching ""