`
yangfuchao418
  • 浏览: 161875 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

gearman Javawork

阅读更多
 

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();
}
}
 


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics