import java.util.concurrent.ExecutionException;
import org.gearman.client.GearmanClient;
import org.gearman.client.GearmanClientImpl;
import org.gearman.client.GearmanJob;
import org.gearman.client.GearmanJobImpl;
import org.gearman.client.GearmanJobResult;
import org.gearman.common.GearmanNIOJobServerConnection;
import org.gearman.util.ByteUtils;
class PrintThread extends Thread{
public void run(){
ClientTest test=new ClientTest("192.168.101.143", 4730);
System.out.println(test.reverse("hello"));
}
}
public class ClientTest {
GearmanClient client;
GearmanNIOJobServerConnection con;
public ClientTest(String host, int port) {
con = new GearmanNIOJobServerConnection(host, port);
client = new GearmanClientImpl();
client.addJobServer(con);//添加一个任务
}
public String reverse(String input) {
String function = ReverseFunction.class.getCanonicalName();//调用函数
ReverseFunction rf=new ReverseFunction();
//String reverseValue=rf.reverseValue(input);
byte[] data = ByteUtils.toUTF8Bytes(input);
String value = "";
GearmanJob job = GearmanJobImpl.createJob(function, data, null);
client.submit(job);
try {
GearmanJobResult rs = job.get();
value = ByteUtils.fromUTF8Bytes(rs.getResults());
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ExecutionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return value;
}
public void shutdown()
{
if(null==client){
System.out.println("no client to shutdown");
}
client.shutdown();
}
public static void main(String[] args) throws Exception {
String host="192.168.101.143";
int port =4730;
String input="woyo";
ClientTest clientTest=new ClientTest(host, port);
/* for(int i=0;i<10;i++){
Thread t = new PrintThread();
t.start();
Thread.sleep(1000);
}*/
input=clientTest.reverse(input);
// System.out.println(input);
clientTest.shutdown();
}
}
分享到:
相关推荐
在Java中,我们可以利用 Gearman 的客户端库来与 Gearman 服务器进行交互,执行分布式任务。本篇文章将深入探讨 Gearman 的 Java APIs,并通过一个小 Demo 展示其用法。 ### Gearman 的基本概念 1. **Worker**:...
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
java实现gearman的job实现的jar包,包括gearman server,client和work客户端API
在Java中,我们可以通过使用Gearman Java Client和Worker库来与Gearman Job Server进行交互。这些库提供了API,使得在Java应用中集成Gearman变得简单。例如,`com.gearman`包下的`GearmanClient`类用于创建客户端...
使用方法上,GearMAN通过定义Worker和Client的角色和职责来实现任务的分发与执行。同步调用会阻塞等待结果返回,异步调用则在任务分发后立即返回,由Job服务器根据负载情况来分配任务。此外,GearMAN还支持分优先级...
- **客户端(Client)**:客户端是提交任务到 Gearman 队列的程序。它们不需要知道任务是如何被处理的,只需要将任务提交给 Gearman 服务器,然后等待结果。 - **服务器(Server)**:服务器是 Gearman 的核心组件...
齿轮人提供了一系列的命令行工具,如`gearmand`(服务器)和`gearman-client`(客户端),这些工具可以帮助开发者测试和调试任务处理流程。 7. **监控与管理**: 对于生产环境,监控齿轮人的运行状态非常重要。...
Gearman支持多种编程语言,包括C、Python、Perl、Java等,而pecl-gearman就是PHP对Gearman的官方支持。 **libgearman库** libgearman是Gearman的C语言客户端和服务器库。它提供了一系列的API函数,用于连接...
在Java中,我们可以使用`gearman4j`库来与`Gearmand`通信,创建和提交任务。例如: ```java GearmanClient client = new GearmanClient("localhost", 4730); // 创建GearmanClient实例,指定服务器地址和端口 ...
记住,Gearman支持多种语言的客户端和服务器,包括C、Python、Perl、Java等。选择使用Perl是因为其API功能相对完整。确保你的Gearman服务器已经启动并且配置正确,这样你就可以利用Gearman::XS在你的Perl应用程序中...
齿轮人支持多种编程语言的客户端库,如PHP、Python、Ruby、Java等。使用客户端,你可以将任务发布到队列,或者从队列中获取任务进行处理。例如,在Python中,可以使用`py-gearman`库来实现: ```python from ...