群发邮件的时候最好这样用,如果想定时发送的话,加到crontab里就行了,比较方便。
batch script:

  1. define('SF_ROOT_DIR',    realpath(dirname(__FILE__).'/..'));
  2. define('SF_APP',         'app_name');
  3. define('SF_ENVIRONMENT', 'environment');
  4. define('SF_DEBUG',       true);
  5.  
  6. require_once(SF_ROOT_DIR.DIRECTORY_SEPARATOR.'apps'.DIRECTORY_SEPARATOR.SF_APP.DIRECTORY_SEPARATOR.'config'.DIRECTORY_SEPARATOR.'config.php');
  7. sfContext::getInstance();

Continue reading »

  今天上symfony官方网站查找资料,一直处于无法打开状态,不知道是我这里线路的问题,还是官方网站服务器的问题,但愿早点恢复,还有好多资料没看呢。

  使用内置的发送多email的功能,发送少量的还行,发送大量的就会占用太多的内存,导致发送失败或其他未知错误。因此采用循环每次发送一个地址比较实用一些,在action中这样写 Continue reading »

在网上看到了这个比较有意思,转过来。

以动手实践为荣,以只看不练为耻。
以打印日志为荣,以出错不报为耻。
以局部变量为荣,以全局变量为耻。
以单元测试为荣,以手工测试为耻。
以代码重用为荣,以复制粘贴为耻。
以多态应用为荣,以分支判断为耻。
以定义常量为荣,以魔法数字为耻。
以总结思考为荣,以不求甚解为耻。

一段简单示例代码:

  1. $key = md5('myPropelObjectKey');
  2. $sfProcessCache = new sfProcessCache();
  3. if ($sfProcessCache->has($key)) {
  4.   $obj = unserialize($sfProcessCache->get($key));
  5. }else{
  6.   $obj = Table::doSelect();
  7.   $sfProcessCache->set($key, serialize($obj))
  8. }

导致错误的关键是sysctl.conf文件中net.inet.tcp.minmss的设置。
如果你也遇到了相同的问题,那么在sysctl.conf中不要手工定义net.inet.tcp.minmss的值,让系统自动选择就可以排除问题。
不少地方都建议设置net.inet.tcp.minmss=1460,当时我也是这么设置的,因为只是小部分用户无法访问,所以不容易发现。

mss实际上是tcp报文的payload大小.加上链路层开销,ip报头,tcp报头,加密等.就有可能会大于mtu,而如果数据报df位设置为1时,路由器就会丢弃.否则分片发送.
一般常见于ADSL 线路,ppp包头包尾开销8字节,1500-8=1492为最大mtu,IP数据包包头的大小20Bytes和TCP数据段的包头20Bytes.1492-40=1452字节为最大mss

但有些特殊情况,是由于某些软件的报文加密度不一样,占用字节不一样.就应该适应调节mss或mtu大小.但是具体调节到哪一个范围,和所在的网络环境有关系,我试着设置了几个值都没有解决问题,到最后只有让系统自动根据包选择合适的值,我把默认值net.inet.tcp.mssdflt设置为1460,net.inet.tcp.minmss注释掉,问题解决。

MSS设置不一定大,性能就高的,而是取决与对方的MSS,如果你的大,就以对放的为准。
假如对方最大只提供1400,而你设置最小MSS为1460,你说出问题不?
一般说来修改 net.inet.tcp.mssdflt就行了。 默认使用你设置的,但一些必要的还是让系统去判断。 让系统也支持216的这种小的分片。

© 2011 刘敏的Blog Suffusion theme by Sayontan Sinha