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