我在我的项目中使用Gearman Job服务器。我使用'gearman-ruby'宝石。 应用程序中有一个任务队列。一项任务有4个部分。
恰当地,我有4名工人来解决这部分任务。减速机任务队列溢出并完成任务
我的系统在10分钟内解决1个任务,没有工人。但是当我使用减速机时,解决10个任务的时间是2-3小时:(
减速机队列位于mysql中,队列溢出
Cron启动客户端,它设置任务一个任务 - 解析一个页面 1st worker - 获取页面(init),2nd - 获取照片(images),3rd - 获取评论(text),4rd - 获取特性(text),1 worker获取页面,其他worker分析这些页面的不同数据
Gearman的CONFIGS:
$cat /etc/sysconfig/gearmand
## Settings for gearmand
OPTIONS="--listen=127.0.0.1
--job-retries=3 \
--log-file=/var/log/gearman.log \
--queue-type=MySQL \
--mysql-host=localhost \
--mysql-port=3306 \
--mysql-db=gearman \
--mysql-table=queue"
$gearmand --version
gearmand 0.35
帮助我,请设置Gearman的速度工作
你提供的工作太少了。请添加更多详细信息:(在合理的范围内)任务的性质,当前的服务器设置以及执行实际处理(工作人员)的代码。正如描述所述,问题可能是任何事情/一切。 – fmendez 2013-03-18 16:03:58
客户端设置任务,但我在10-15分钟后在gearman.queue(mysql表中)中看到此任务。在工人开始执行任务之前,有一段时间的延迟。我只在1个任务中测试了减速器的时候看着它。这就是为什么我认为这个问题是在德国的设置... – bmalets 2013-03-18 17:38:19
添加“ - 线程= 12”到配置。工人开始执行任务之前的延迟明显减少。但是Gearman仍然工作得非常缓慢......并且队列溢出了任务。任务解决了,但仍然存在于gearman.queue :( – bmalets 2013-03-18 17:51:05