我安装了Drupal 7并启用了Feed Import模块(与Feeds模块不同!)。在这个模块中,我需要使用不同的计划从几个xml源导入数据。例如,饲料A应每天进口一次,但每周进食一次。
我做过研究和建议,Elysia Cron或Ultimate Cron应该帮助做到这一点。但是我无法弄清楚需要做些什么才能真正实现不同时间可以导入不同的Feed。
如果我以Ultimate Cron案例为例,那么使用他们的API ultimate_cron.api.php https://www.drupal.org/project/ultimate_cron我发现了以下建议:
我在Feed Import模块中创建了一个钩子,并定义了一个新的cron任务(用于导入已在Feed Import中按名称“test API feed RAW”定义的Feed)。代码如下所示:
function feed_import_base_cronapi() {
$items = array();
$items['test_api_feed_raw_cron'] = array(
'title' => t('test API feed RAW')
);
return $items;
}
然而,当我在管理布局中转到Cron页面并手动执行新创建的任务时,没有任何反应。它显示cron任务已成功执行,但未导入任何数据。
似乎这个新创建的任务实际上并未与Feed Feed模块中定义的Feed相关联。或者它没有触发导入该Feed。
我在这里错过了什么,做错了什么?我不太熟悉php和模块开发,任何帮助都会受到赞赏。
我已经谷歌搜索并寻找各种解决方案,但没有任何作用。我真的觉得我错过了一些非常基本和明显的东西。但当然它可能也是相反的,我正在努力实现一些非常复杂的事情。
答案 0 :(得分:0)
在同事的帮助下找到解决方案。如果某人有一天需要它,可以在这里发布。
我在这里错过了一个触发实际Feed导入的回调函数。我也从Ultimate Cron变成了Elysia cron。 (不确定这实际上是否会产生影响)
触发Feed导入的实际功能来自feed_import_base.module
_feed_import_base_process_feed($feed);