基于Memcached的烧杯会话未在Zope开始时初始化

时间:2014-04-02 03:15:27

标签: session memcached plone zope beaker

我们正在为分布式Plone / Zope设置使用基于memcached的beaker会话。相同的设置在我们的预制环境中工作正常,但是当我们转向产品时,我们似乎无法将其连接到11211上的memcached。

我在启动Zope的同时在机器上运行tcpdump,它甚至没有尝试连接。

我从Zope服务器telnet到memcached服务器(与ZEO服务器相同)来测试连接,并且工作正常。

我尝试了两种不同的prod Zope服务器,结果是一样的。

我们的旧设置(4.2.5)在另一个prod服务器上运行,当我们启动它时,我们得到了预期的行为,它连接到memcached就好了。不幸的是,我们还有一个4.3.2设置(与prod相同)在pre-prod中运行,它也可以正常工作。我无法确定设置中的任何实质性差异。

所有系统都运行隔离(非系统/适当控制)Python 2.7s。

zope.conf的相关部分

# Beaker Configuration
zope-conf-additional =
<product-config beaker>
    cache.type              ext:memcached
    cache.url               ${ips:memcached}
    cache.data_dir          ${buildout:directory}/var/cache/data
    cache.lock_dir          ${buildout:directory}/var/cache/lock
    cache.regions           short, long
    cache.short.expire      60
    cache.long.expire       3600

    session.type            ext:memcached
    session.url             ${ips:memcached}
    session.data_dir        ${buildout:directory}/var/sessions/data
    session.lock_dir        ${buildout:directory}/var/sessions/lock
    session.key             beaker.session
    session.secret          magicalsecretcornedbeefhash
</product-config>

zcml =     collective.beaker

versions.cfg的相关版本:

# Beaker
Beaker = 1.6.4
Products.BeakerSessionDataManager = 1.1
collective.beaker = 1.0b3
python-memcached = 1.47

我已经测试过$ {ips:memcached}在启动时产生了正确的值。没有错误记录到Zope日志,但没有创建烧杯会话,也没有尝试连接memcached。 Memcached正在愉快地运行,但没有生成日志(似乎从来没有)。

关于可能导致此问题的任何想法或建议都很有帮助。更多背景资料:

Ubuntu 12.04.4 LTS
Linux 3.2.0-58-generic #88-Ubuntu SMP Tue Dec 3 17:37:58 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

仓/附加件:

#!/opt/zope/pythons/python-2.7/bin/python

import sys
sys.path[0:0] = [
    '/opt/zope/buildouts/FOO/eggs/distribute-0.6.28-py2.7.egg',
    '/opt/zope/buildouts/FOO/eggs/zc.buildout-1.7.1-py2.7.egg',
]

1 个答案:

答案 0 :(得分:1)

转到制作时,请记住Products.BeakerSessionDataManager README中的最后一部分:

3. In the ZMI, delete the ``session_data_manager`` object and add a
   ``Beaker Session Data Manager``.