这是几个月前我开始尝试的一个问题,我一直试图修复,但没有成功.
症状:在随机的时间间隔内,symfony丢失会话信息并注销用户.似乎某种程度上与网站的负载连接.当负载较高时,用户似乎更频繁地退出,甚至可能在30秒内快速发生.
环境:从一开始我就改变了很多设置,包括php版本,web服务器,会话存储,symfony版本.这是当前的设置:Ubuntu 10.04,php 5.4.0,symfony 1.4.17,nginx 1.0.15 with FPM.以下是在factories.yml中配置会话存储的方法:
user:
class: myUser
param:
timeout: 86400
use_flash: true
storage:
class: sfCacheSessionStorage
param:
cache:
class: sfMemcacheCache
param:
lifetime: 86400
host: 192.168.1.3
serializer: IGBINARY
mode: compiled
port: 11211
Run Code Online (Sandbox Code Playgroud)
我提到我还使用redis进行会话存储,但仍然存在问题.我真的不知道下一步该尝试什么.还有其他人经历过类似的事吗?在这个阶段,任何提示都将非常感激.
更新: Ater个月的搜索和无数的试验和错误我认为这可能是一个并发问题.我们的网站对AJAX请求非常重视,并且我了解到它会导致会话出现问题,除非会话处理程序中实现了正确的锁定机制.首先,我已经从等式中消除了symfony,我已将其设置为使用php会话.使用默认文件会话存储,我永远不会丢失任何会话.然后我配置了php来使用memcache会话存储.当然,我们已经开始看到失去的会议.我100%肯定memcached没有内存不足,我已经安装了一个管理工具,而memcached服务器几乎没有使用分配给它的8GB的2%(没有浪费,内存根据需要分配).然后我添加了第二个memcached服务器并配置了会话处理程序以使用冗余.这有很大帮助,我很少有任何失去的会议.目前,这是一个可接受的妥协.
任何想要从浏览器进行无人值守打印的人都知道这不是一项简单的任务,另一方面它对任何后台应用程序都非常有用.然后谷歌用GCP来救我们.
所以我得到了它设置,几分钟后我打印了一份文件.但后来我想对打印机应用一些设置.而这是你意识到文档完全没有这一点的那一刻.它甚至没有解释如何做一些简单的事情,如将页面设置为横向.
该文档仅表示您必须以XPS或PPD格式发送功能参数.即使您能够检索打印机的功能,您也会意识到它的名称表明它描述了所有打印机功能,而不是特定打印作业的设置.
那么如何实际指定打印作业设置?