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

changwu · May 07, 2013 · Last by renxinyum replied at December 16, 2017 · 14583 hits

在做一个分布式调度的东西,采用了 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 实例

You need to Sign in before reply, if you don't have an account, please Sign up first.