【问题标题】:Ability to reload change in Magento site's configuration without clearing cache无需清除缓存即可重新加载 Magento 站点配置中的更改
【发布时间】:2012-02-29 08:44:58
【问题描述】:

今天我处理了一项任务,将模块的配置加载到负载重的正在运行的 Magento 站点中。我复制了新模块的 config.xml 文件和所有东西来解决一些问题。

我们的 Magento 使用 memcached 缓存后端运行。

要运行一个模块,我必须完全清除缓存,这会对站点的性能产生影响,我们有 500 个并发用户。所以我正在寻找如何在不清除缓存的情况下部署配置更改的解决方案。

有吗?

感谢您的任何想法和想法。

贾罗。

【问题讨论】:

    标签: caching magento memcached config reload


    【解决方案1】:

    这是一种更新配置缓存而不是清除它的方法,从而避免竞争条件。

    https://gist.github.com/2715268

    【讨论】:

    • 看起来很棒!谢谢,我去试试,告诉你。
    • 当 Magento 缓存新资源适配器的名称 (Magento_Db_Adapter_Pdo_Mysql) 并在 app\code\core\Mage\Core\Model\Resource.php _newConnection()在线$connection = new $className($config);。清除缓存没有帮助。我不知道为什么它会这样运行,但我快把我逼疯了。从 Gist 运行代码后,我的实例再次正常运行,谢谢!
    【解决方案2】:

    您不必清除整个缓存来加载模块的配置。您可以使用Flush Magento Cache* 选项安装该模块。最终,您需要清除缓存以查看您的前端更改(如果有的话)。将性能影响降至最低的最佳做法是在非高峰或低使用时间清除它。

    *已编辑 - 谢谢Fiasco Labs

    【讨论】:

    • Flush Cache StorageFlush Magento Cache 的核心选项,正如这里所解释的... stackoverflow.com/questions/5955365/… 清除缓存只影响 Magento,刷新缓存存储也会为服务器上的其他 php 应用程序擦除它。所以他们都刷新缓存,只有一个更彻底。
    • 我认为必须有另一种方法来安装模块而不清除整个缓存。我更喜欢任何检查所有模块并在必要时强制安装过程的方法。最后,如果您是作者,那么就知道它会做什么:)
    【解决方案3】:

    最好将系统置于维护模式,确保所有管理员会话都已注销,检查所有人都已退出,然后手动删除 var/cache/mage--?文件夹。然后,您重新登录一个管理会话,让它运行直到您看到一个管理会话已开始,然后注销然后重新进入管理,以开始检查该站点以了解新安装的模块的全部功能。

    【讨论】:

      【解决方案4】:

      在安装模块或更改其配置时,您将总是必须刷新缓存。这对于强制重新读取配置、清空不兼容的操作码并强制 Magento 重新读取您刚刚所做的更改的应用程序代码和模板是必要的。

      是的,它会对您网站的性能产生暂时的影响,但如果您不这样做,可能会导致一些非常有趣的问题。

      我曾经遇到过使用管理员中的按钮还不够的情况,对于模块安装,最好将系统置于维护模式,确保所有管理员会话都已注销,检查每个人都已退出,然后手动删除 var/cache/mage--?文件夹。然后,您重新登录一个管理会话,让它运行直到您看到一个管理会话已开始,然后注销然后重新进入管理,以开始检查该站点以了解新安装的模块的全部功能。

      对于缓存刷新就足够的简单配置更改,这当然是矫枉过正。

      More info on clearing the cache in Magento

      【讨论】:

      • 我会说这是矫枉过正的方法:-)
      • 是的。我们如何使脚本语言程序像编译程序一样快速?我们缓存东西而不是创建目标文件并将它们链接到可执行文件中。回溯时,这是用解释的 Pascal 尝试的。您拥有所有这些 p 代码文件,而不是在更改源时需要刷新。同样的事情也适用于使用 PHP 完成的任何缓存。更改垃圾,必须刷新缓存。解决此问题的唯一另一种方法是清除特定的缓存标签,并希望您点击更改的内容。在上面,可能只清除 CONFIG 就可以了。
      • 我已经尝试过这种有限的缓存标签删除,只是经常有一些东西,卡在 APC 中。最后,通过直接删除文件来清除的麻烦要少得多,因为这似乎会迫使 APC 完全刷新而不会错过任何一个节拍,并避免客户在前端看到奇怪的混乱垃圾,整个管理员在后端消失。在繁忙的站点上,缓存会很快重建。
      猜你喜欢
      • 1970-01-01
      • 2018-12-05
      • 1970-01-01
      • 2013-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-16
      相关资源
      最近更新 更多