新手问题 发送邮件 100 封,想要每 10 封做一个线程或者 Process

jerrym · 2015年07月14日 · 最后由 rei 回复于 2015年07月14日 · 2199 次阅读

发送邮件 100 封,想要每 10 封做一个线程或者 Process 实现着 10 个线程同时发送,互相不干扰, 这个如何来实现呢?

消息队列

@qinix 能不能给我一个具体的实例,有点不明白

3 楼 已删除

#2 楼 @jerrym 我认为 @qinix 的意思是:开 10 个队列,然后每个队列里面放 10 封邮件,每个队列有个 job worker 负责发送本队列的邮件。

@lgn21st 逻辑没有问题,现在想要知道的是有没有实例参考一下

sidekiq,100 封邮件分成 10 组,调用 10 次 perform,每个任务 10 个邮件 id 不过这么搞的话一般会被 smtp 服务器那边封 ip 的吧

不用开 10 个队列吧,你 sidekiq 这个队列开 10 个 proccessor,每次每个 proccessor 会压一个邮件 id 出队列,天然的就是你要的结果 当然这不是精确的,比如快的会多发几个,慢的会少发

想精确就得自己指派

消息队列 sidekiq 等就行了。看你的需求是想并行来加速度?

典型的消息队列问题。。。

现在发送邮件的速度太慢 100 封要 6 分钟才能发出去,想要缩减这个时间

用现成的邮件服务行不行

可以试试云服务,比短信便宜,速度也快

现在用 fork 来实现了,就是不知道有没有什么问题,还在测试中

@huacnlee 谢谢,学习一下

需要 登录 后方可回复, 如果你还没有账号请 注册新账号