如何以编程方式分割创建数千个节点的过程

问题描述 投票:0回答:1

我需要将xml文件导入Drupal 8并根据其内容创建节点。我尝试在文件.theme(我无法创建自定义模块)中执行此操作,因此我的计划是:

  1. 获取xml文件内容并解析它;
  2. 用解析数据创建数组;
  3. “foreach”数据并在循环的每个步骤中创建节点(使用Node :: create)并且它可以工作,但是如果我需要创建几千个节点(例如10000个,有大量文件xml),则会出现问题,这个过程可能需要一个小时(当然我不能使用最大执行时间= 0,它有限的30秒)。

有没有办法将流程分成几个阶段?我试图使用批处理,但如果我理解正确,它们只能用于表单。我也想过使用Queue,但我不确定我是否可以在.theme文件中使用Queue。

请帮我了解如何将流程分成几个阶段

drupal-8
1个回答
0
投票

您可以使用Drupal 8 migrate module配置和处理导入。迁移模块是Drupal 8核心的一部分,因此不需要创建任何新模块,并且是导入大量节点或其他Drupal数据(例如分类法)的最常用技术之一。

迁移模块会自动处理批处理问题,如果数据存在问题,还可以回滚迁移。

您可以在这里找到处理XML数据的教程:https://www.drupal.org/docs/8/api/migrate-api/migrate-source-plugins/migrating-data-from-xml-json-or-soap-source

或者,您可以使用Feeds模块。 Feed是为持续导入而设计的,例如RSS feed可以不断更新,但也可用于一次性导入。

© www.soinside.com 2019 - 2024. All rights reserved.