Ruby 有没有比 beanstalkd 更好的任务队列

changwu · 2013年05月07日 · 最后由 renxinyum 回复于 2017年12月16日 · 14578 次阅读

在做一个分布式调度的东西,采用了 beanstalkd,感觉有点轻量级,任务多了就死了。

有做过类似的功能,能不能指点一下。。谢谢!!

sidekiq 对 redis backburner 对 beanstalkd

话说,多少任务量会让 beanstalkd 死掉?

#2 楼 @wppurking 多进程访问是老出问题。如果任务数低于 1000,同样多进程没有出现问题。所以我有点怀疑是轻量级的问题。

#1 楼 @doitian sidekiq 是不是延时任务用的?我主要是要做分布式调度用。不知有没有其他解决方案。

#4 楼 @changwu 不同机器用 sidekiq 连接到同一个 redis 上不就分布了吗?

#5 楼 @doitian 哦了。谢谢。。。

@changwu beanstalkd 很强的啊。

sidekiq 用得是 redis, redis 中数据结构多很好用,而 beanstalkd 对队列支持非常完善。延时任务如果要求不严格的话,可以试一试 sidekiq

#7 楼 @wppurking benstalkd 确实很好用。很简单。

#7 楼 @wppurking 我再用多线程试试。不行再试 sidekiq,因为它本身有多线程处理。

#7 楼 @wppurking 有没有遇到过“段错误 (核心已转储)”,这个是什么原因产生的?

#10 楼 @changwu 大多数是访问非法内存导致的。还可以试试 0mq

#11 楼 @doitian #2 楼 @wppurking

beanstalkd 在高并发时慢啊。。

情况是这样的:一个进程单线程 push jobs,总共 80w 左右,10 个进程 200 个线程 get jobs,服务器 4*4 核。96G 内存。感觉是 push jobs 很慢。

是不是我哪里不对啊?我怀疑是 200 个线程做轮询访问 beanstalk 使其变慢。但又不知道怎么去找出到底哪里慢。

请帮我分析分析啊。。

beanstalkd 对多核利用不行,可以在单台服务器上起多个 beanstalkd 实例

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