Gearman::Driver是不错的Geamman worker管理器
最近发现了Gearman::Driver。可以方便的编写gearman的worker。由于使用了Moose和POE,扩展起来相当简便。比如可以对某个class的method
添加一个Job attribute,就能够实现worker了:
package # hide from PAUSE
Gearman::Driver::Test::Live::RuntimeOption;
use base qw(Gearman::Driver::Test::Base::All);
use Moose;
sub job1 : Job :MinProcesses(2): MaxProcesses(10) {
my ( $self, $job, $workload ) = @_;
return $self->foo;
}
1;
job1就自动注册为:’ Gearman::Driver::Test::Live::RuntimeOption::job1′ 了。MinProcesses, MaxProcesses则定义worker要spawn的进程数。
Gearman::Driver还实现了一个console,通过telnet可以动态的更改worker的进程数,非常的方便。
美中不足的是,Gearman::Driver的worker 无法通过配置文件来配置,在部署的时候很不方便。 对于一些运行时要读取某些配置的worker,
只能通过hard code或者$ENV来传递。
于是,我fork后做了写改进,添加了一些选项,启动时使用–configfile就可以从对应的配置文件读取了。
这是我github上fork的Gearman::Driver
Comments
Leave a Reply