import java.util.ArrayList;
import java.util.List;
import org.gearman.common.GearmanNIOJobServerConnection;
import org.gearman.worker.GearmanFunction;
import org.gearman.worker.GearmanWorker;
import org.gearman.worker.GearmanWorkerImpl;
public class WorkerRunner {
GearmanNIOJobServerConnection conn;
List<Class<GearmanFunction>> functions;
public WorkerRunner(String host,int port ,List<Class<GearmanFunction>> funs){
conn = new GearmanNIOJobServerConnection(host, port);
functions = new ArrayList<Class<GearmanFunction>>();
functions.addAll(funs);
}
public void start()
{
GearmanWorker worker=new GearmanWorkerImpl();
boolean b=worker.addServer(conn);
if(b)
{
for(Class<GearmanFunction> c:functions)
{
worker.registerFunction(c);//注册一个类,实际的业务逻辑处理是在这个类中完成
}
System.out.println("Start Success!!!");
worker.work();
}
if(!b){
System.out.println("Start Fail!!!");
System.exit(-1);
}
}
@SuppressWarnings({ "unused", "unchecked", "static-access" })
public static void main(String[] args) throws ClassNotFoundException{
List<Class<GearmanFunction>> functions=new ArrayList<Class<GearmanFunction>>();
String host="192.168.101.143";
int port=4730;
String[] funcs = {"org.woyo.gearman.ReverseFunction"};
for (String func : funcs) {
Class c;
try {
c = Class.forName(func);
if (!GearmanFunction.class.isAssignableFrom(c)) {//判断此实例是不是GearmanFunction类中的一个实例
System.out.println(func + " is not an instance of " + GearmanFunction.class.getCanonicalName());
return;
}
functions.add((Class<GearmanFunction>) c);
} catch (ClassNotFoundException cfne) {
System.out.println("Can not find function " + func + " on class path");
return;
}
}
new WorkerRunner(host, port, functions).start();
}
}
分享到:
相关推荐
gearman下载gearman下载gearman下载gearman下载gearman下载
Gearman中文手册,gearman手册chm,Gearman中文详解,分享gearman技术心得,主要是为了分享技术,所以不要大家的资源分。
Gearman中文手册,gearman手册chm,Gearman中文详解,分享gearman技术心得,主要是为了分享技术,所以不要大家的资源分。
java-gearman-service-0.6.6.zip 包,gearman分为3部分,client - server - worker,创建 java 版本的client和worker部分。 其实在gearman中,client和worker的编写不复杂,但是不同厂商提供的API是不大相同的,本...
java实现gearman的job实现的jar包,包括gearman server,client和work客户端API
gearman 文档,gearman 是个集群计算框架,通过对其扩展能够充分利用集群计算
GearMAN讲解及所带来的变革 全面介绍Gearman原理、应用
Gearman 的C#开发API和一个简单自带demo,vs2008.
Laravel开发-php-gearman Gearman作业服务器工人助手
Gearman环境搭建可能会用到的资料. gearmand-1.1.12.tar.gz libevent-2.0.22-stable.tar.gz libuuid-1.0.3.tar.gz
Laravel开发-laravel-gearman-rpc Laravel/Lumen Gearman RPC。基于https://github.com/mhlavc/gearman
gearman的java库有两个,一个是gearman service ,一个是gearman java,相比来说service版本更好用一些,并且网上的教程一般是用的这个版本。因此我打好了gearman service的包提供给需要的开发者使用。
该资源包括安装Gearman时可能涉及到的软件包 具体包括gearmand、gearman、php、gperf、libevent
安装gearman 如果没有mysql客户端,需要安装mysql客户端 yum install -y libevent-devel 上传gearman.zip,解压unzip gearman.zip rpm -ivh uuid-1.5.1-3.el5.x86_64.rpm rpm -ivh libgearman-1.1.8-2.el5.x86_64...
Gearman java API和一个小Demo
Gearman是一个分发任务的程序框架,可以用在各种场合,与Hadoop相比,Gearman更偏向于任务分发功能。它的 任务分布非常 简单,简单得可以只需要用脚本即可完成。Gearman最初用于LiveJournal的图片resize功能,由于...
Gearman 的 MySQL 插件
1)软件资源列表:《gearmand-1.1.12.tar.gz》,《gearman-1.1.2.tgz》。 2)安装操作系统环境:CentOS-6.5,(其它linux操作系统请自行尝试)。 3)本软件安装步骤详解:...
Gearman的一个worker实例,用c++编写,windows平台下,vs2008
java实现gearman的job实现的jar包,包括gearman server,client和work客户端API