当前位置: 首页>>代码示例>>Java>>正文


Java AddUpdateCommand.setVersion方法代码示例

本文整理汇总了Java中org.apache.solr.update.AddUpdateCommand.setVersion方法的典型用法代码示例。如果您正苦于以下问题:Java AddUpdateCommand.setVersion方法的具体用法?Java AddUpdateCommand.setVersion怎么用?Java AddUpdateCommand.setVersion使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.apache.solr.update.AddUpdateCommand的用法示例。


在下文中一共展示了AddUpdateCommand.setVersion方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: processAdd

import org.apache.solr.update.AddUpdateCommand; //导入方法依赖的package包/类
public void processAdd(AddUpdateCommand cmd) throws IOException {
  if (!isLeader(cmd)) {
    super.processAdd(cmd);
    return;
  }

  final SolrInputDocument newDoc = cmd.getSolrInputDocument();

  Object newVersion = newDoc.getFieldValue(versionFieldName);
  if ( null == newVersion ) {
    throw new SolrException(BAD_REQUEST, "Doc does not have versionField: " + versionFieldName);
  }

  for (int i=0; ;i++) {
    // Log a warning every 256 retries.... even a few retries should normally be very unusual.
    if ((i&0xff) == 0xff) {
      log.warn("Unusual number of optimistic concurrency retries: retries=" + i + " cmd=" + cmd);
    }

    if (!isVersionNewEnough(cmd.getIndexedId(), newVersion)) {
      // drop older update
      return;
    }

    try {
      cmd.setVersion(oldSolrVersion);  // use optimistic concurrency to ensure that the doc has not changed in the meantime
      super.processAdd(cmd);
      return;
    } catch (SolrException e) {
      if (e.code() == 409) {
        // log.info ("##################### CONFLICT ADDING newDoc=" + newDoc + " newVersion=" + newVersion );
        continue;  // if a version conflict, retry
      }
      throw e;  // rethrow
    }

  }
}
 
开发者ID:europeana,项目名称:search,代码行数:39,代码来源:DocBasedVersionConstraintsProcessorFactory.java


注:本文中的org.apache.solr.update.AddUpdateCommand.setVersion方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。