Drupal 7 Drupal:以编程方式运行Feeds导入器-将代码放在何处

Drupal 7 Drupal:以编程方式运行Feeds导入器-将代码放在何处,drupal-7,drupal-feeds,Drupal 7,Drupal Feeds,使用Cron运行提要导入器时,导入器超时,导致导入不完整。我试图使用脚本来执行导入程序,我曾多次遇到以下代码: <?php function MODULE_NAME_cron() { $name = 'FEED_NAME'; $source = feeds_source($name); $source->import(); } ?> 然而,当执行此命令时,我得到一个错误,说没有feeds_source()函数,这使我相信我只是不知道把代码放在哪里(一个单独的p

使用Cron运行提要导入器时,导入器超时,导致导入不完整。我试图使用脚本来执行导入程序,我曾多次遇到以下代码:

<?php
function MODULE_NAME_cron() {
  $name = 'FEED_NAME';
  $source = feeds_source($name);
  $source->import();
}
?>


然而,当执行此命令时,我得到一个错误,说没有feeds_source()函数,这使我相信我只是不知道把代码放在哪里(一个单独的php文件对我来说根本不起作用)。有人能帮我吗?提前谢谢

我认为您需要调用
$source->startImport()方法安装的
$source->import()

我刚刚在这里发布了一个类似问题的答案:,这可能会有所帮助。简而言之,在表单中,如果您使用批处理api,请提交钩子;如果您使用的是非浏览器,请不要使用批处理api(安装钩子,安装配置文件)

那么你的情况呢

function load_data(){

// Files to import in specific order.
$files = array(
'challenge_importer' => 'data/challenges.csv',
);

$file_location_base = drupal_get_path('module', 'challenge');
foreach ($files as $feed => $file) {

$feedSource = feeds_source($feed);
// Set the file name to import
$filename = $file_location_base.'/' . $file;
if (!file_destination($filename, FILE_EXISTS_ERROR)) {
$config = $feedSource->getConfig();
$config['FeedsFileFetcher']['source'] = $filename;
$feedSource->setConfig($config);
$feedSource->save();
    while (FEEDS_BATCH_COMPLETE != $feedSource->import());
    }
  }
}
可以从cron调用,也可以使用feeds导入器中的计划执行