Magento和Google Sitemap自动生成每周而不是每天

时间:2013-10-22 08:20:30

标签: magento sitemap

我的Google站点地图最初设置为每天自动生成,但它在服务器上造成了相当大的负担,因此我更改了Magento管理员中的设置(系统>配置> Google站点地图>生成设置(每周)每周运行。站点地图仍然每天生成。有什么我缺少或需要改变吗?

2 个答案:

答案 0 :(得分:1)

我正在寻找同样的问题。

Mage_Adminhtml_Model_System_Config_Backend_Sitemap_Cron::_afterSave

中似乎有一个错误

第45行读取$frequncy = $this->getData('groups/generate/frequency/value');

并且应该阅读$frequncy = $this->getData('groups/generate/fields/frequency/value');

我刚试过这个,并且它在每个频率选项上都能正常工作

说明:

当您保存站点地图配置时,将调用此方法重新计算站点地图生成的cron表达式,然后由cron模块读取该表达式以计划并稍后运行任务。在第57和59行,它试图确定频率是每周还是每月,否则为每日。由于最初读取的值是错误的,因此它始终默认为每日。

此外,变量应该命名为$frequency,而不是$frequncy

答案 1 :(得分:0)

<强> 1。配置范围

检查您是否在正确的范围(默认,网站或店面)中配置了站点地图生成频率,其他配置范围没有其他值。

<强> 2。 Cron日程安排设置

可能不太可能,但可能仍有一些cron任务被安排。可以在Admin > System > Configuration > System > Cron下找到此设置。虽然你必须设置这些值非常高。我相信默认值(或至少是理智的)是15/20/15/10/60/600。

第3。缓存? /错误

与Magento一样,另一个问题可能是缓存,清除缓存(听起来也不太可能)。

我不知道有关此系统的任何问题,也不知道您可以采取的其他措施来解决这个问题。

<强> 4。调试

频率选项依赖于后端模型来实现_afterSave()方法来处理该选项。它的作用是计算所选择的频率/次数,它产生一个可用于cron配置的字符串。然后将其保存在core_config_data

要调试aftersave函数(检查为什么它可能不能保存正确),您需要具有以下类: Mage_Adminhtml_Model_System_Config_Backend_Sitemap_Cron

要检查数据是否已正确保存在数据库中,您需要搜索以下路径: crontab/jobs/sitemap_generate/schedule/cron_expr

如果您直接编辑数据库,则下次保存站点地图生成设置时将覆盖该数据库。

其他

接下来,我可以推荐这个插件来检查数据库中的cron schedule表。它只是读取那里的数据(并提供一些其他整洁的小功能),但如果您不熟悉Magento代码/数据库架构,它可能非常有用。 http://www.magentocommerce.com/magento-connect/aoe-scheduler.html