如何以编程方式将创建数千个节点的过程分为几个阶段

时间:2019-02-14 10:12:27

标签: drupal-8

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

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

是否有将流程分为多个阶段的方法?我尝试使用批处理,但是如果我理解正确,它们只能与表格一起使用。我也想使用Queue,但是我不确定是否可以在.theme文件中使用Queue。

请帮助我了解如何将流程分为多个阶段

1 个答案:

答案 0 :(得分: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模块。供稿专为进行中的导入而设计,例如具有不断更新的RSS供稿,但也可以用于一次性导入。