shared host里的cron,最多只让你半个小时起来一次吧?这速度也太慢了点。
我认为应该是做一个独立的线程比较好。如果可能的话,我会做成独立的进程。这样修改代码的时候,其它的服务不会被影响。
> BTW:
> 发邮件的函数本地怎么测呢?同样的代码本地发邮件不会成功的。
> 我现在每次都辛苦的上传到server上再试,开发效率太低。
>
单元测试的话,只要你自己这一部分的出口对了就可以了。
比方说你原来是要调用一个叫sendmail的函数来发email,现在
自己做一个mock的sendmail函数,只要判断参数对了就可以了。
--
Best Regards,
Leo Jay
看来你时用 smtp 同步发的。
简单改用本机 sendmail ( mail transport agent )就行。
Ubuntu 的 postfix、exim4 等都提供了 sendmail
> BTW:> 发邮件的函数本地怎么测呢?同样的代码本地发邮件不会成功的。单元测试的话,只要你自己这一部分的出口对了就可以了。
> 我现在每次都辛苦的上传到server上再试,开发效率太低。
>
比方说你原来是要调用一个叫sendmail的函数来发email,现在
自己做一个mock的sendmail函数,只要判断参数对了就可以了。
比方说你本来的程序入口是code.py里的main函数,然后你发email是用一个叫
mailmodule模块的sendmail函数来发的。
那你可以另外创建一个文件叫localcode.py如下:
import mailmodule
def mock_sendmail(**args):
# 这个就是mock函数,把你传进来的参数记录下来(比方说写在文件里)
# 把mock给装上
mailmodule.sendmail = mock_sendmail
# 进入主程序
import code
code.main()
以后本地测试的时候,就起localcode.py,在线上跑的时候,就用code.py
PS:
收录在:
http://wiki.woodpecker.org.cn/moin/MiscItems/2008-08-31
>> > 呵呵因为本地采用了代码管理工具,文件只读,每次上线都改就稍微有些麻烦
>> >
>>
>> 比方说你本来的程序入口是code.py里的main函数,然后你发email是用一个叫
>> mailmodule模块的sendmail函数来发的。
>> 那你可以另外创建一个文件叫localcode.py如下:
>> import mailmodule
>>
>>
>> def mock_sendmail(**args):
>> # 这个就是mock函数,把你传进来的参数记录下来(比方说写在文件里)
>>
>> # 把mock给装上
>> mailmodule.sendmail = mock_sendmail
>>
>> # 进入主程序
>> import code
>> code.main()
>>
>> 以后本地测试的时候,就起localcode.py,在线上跑的时候,就用code.py
--
http://zoomquiet.org'''
过程改进乃是催生可促生靠谱的人的组织!
PE keeps evolving organizations which promoting people be good!'''
插入探测,观察到使用 localhost 发布的 就当是本地,使用 80 端口就是正式服务,
以此区分加载不同的 邮件发送器
PS:
收录在:
http://wiki.woodpecker.org.cn/moin/MiscItems/2008-08-31
sendmail 是守护进程,无须担心其性能和工作方式。如果你的机器顶不住这么多人用 sendmail,那么恐怕也顶不住这么多人开多线程往 smtp 服务器上发邮件。
--
Ray Stinger, nickname lichray
The best way to predict the future is to invent it.
--------------------------------------------------
let focus = 'computing' in here:
http://let-in.blogspot.com
(let (me Program!)):
http://lichray.blogspot.com
postfix、exim4 等的 sendmail 是有 pool 的
(而 msmtp、esmtp 等提供的 sendmail 则只是简单 relay 到 smtp)