magento:有没有办法用cron“运行配置文件”?

时间:2011-11-01 15:55:21

标签: magento

我在magento 1.6上有一个导出配置文件,我可以手动运行它(“在弹出窗口中运行配置文件”),但我需要它每天自动运行。有没有办法设置一个cron工作以某种方式做到这一点?

3 个答案:

答案 0 :(得分:3)

还有其他事情需要考虑,但简而言之,您只需要

Mage::getModel("dataflow/profile")
    ->load(5) // id of the desired profile
    ->run();

答案 1 :(得分:1)

这是1.4.x.x中将运行配置文件的cron脚本。 Export Profile Script

在1.4.x.x及更高版本中,给定适当的资源,如果您的系统在导出完成时正确清理了内容,则可以注释掉打开dataflow_batch_export表并截断它的最后部分。有一段时间,我们遇到了dataflow_batch_import和dataflow_batch_export表增长的问题,因为在任一操作之后无法清理,因为内存泄漏中断了它们的正常操作。

答案 2 :(得分:-1)

我使用了以下内容(注意:断开链接,代码复制如下):

http://www.premasolutions.com/content/magento-dataflow-exportimport-form-command-line

<?php
//THIS SCRIPT JUST INITIALS THE PROFILE TO BE RUN VIA MAGENTO ADMIN "RUN PROFILE IN POPUP". Its the same thing as click just via this file that you can run via cron
$profileId = 8; // SYSTEM - IMPORT/EXPORT - ADVANCED PROFILES <-- you need to go into your magento admin and grab the exact profile ID
   
require_once 'app/Mage.php';
umask(0);
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
  
$profile = Mage::getModel('dataflow/profile');
$userModel = Mage::getModel('admin/user');
$userModel->setUserId(0);
Mage::getSingleton('admin/session')->setUser($userModel);
$profile->load($profileId);
if (!$profile->getId()) {
    Mage::getSingleton('adminhtml/session')->addError('ERROR: Incorrect profile id');
}
  
Mage::register('current_convert_profile', $profile);
$profile->run();
$recordCount = 0;
$batchModel = Mage::getSingleton('dataflow/batch');
echo "EXPORT COMPLETE. BATCHID: " . $batchModel->getId();

它在1.5.x上正常工作(在1.6.x上尚未测试,抱歉)。

如果有效,只需安排一个cron作业自动调用脚本。

关心,亚历山德罗