说明:官网gearman.org反转字符串demo的java版本
1.环境:JDK1.7
所需jar包:java-gearman-service-0.6.6.jar(最新的jar包,用此jar包要求jdk7)
slf4j-api-1.6.4.jar
slf4j-simple-1.6.4.jar
2.代码:
//client端代码
package com.broada.gearman; import org.gearman.Gearman; import org.gearman.GearmanClient; import org.gearman.GearmanJobEvent; import org.gearman.GearmanJobReturn; import org.gearman.GearmanServer; public class EchoClient { public static void main(String... args) throws InterruptedException { //创建一个Gearman实例 Gearman gearman = Gearman.createGearman(); //创建一个Gearman client GearmanClient client = gearman.createGearmanClient(); /* * 创建一个jobserver * * Parameter 1: job server的IP地址 * Parameter 2: job server监听的端口 * *job server收到client的job,并将其分发给注册worker * */ GearmanServer server = gearman.createGearmanServer( EchoWorker.ECHO_HOST, EchoWorker.ECHO_PORT); // 告诉客户端,提交工作时它可以连接到该服务器 client.addServer(server); /* * 向job server提交工作 * * Parameter 1: gearman function名字 * Parameter 2: 传送给job server和worker的数据 * * GearmanJobReturn返回job发热结果 */ GearmanJobReturn jobReturn = client.submitJob( EchoWorker.ECHO_FUNCTION_NAME, ("Hello World!").getBytes()); //遍历作业事件,直到我们打到最后文件 while (!jobReturn.isEOF()) { //下一个作业事件 GearmanJobEvent event = jobReturn.poll(); switch (event.getEventType()) { case GEARMAN_JOB_SUCCESS: //job执行成功 System.out.println(new String(event.getData())); break; case GEARMAN_SUBMIT_FAIL: //job提交失败 case GEARMAN_JOB_FAIL: //job执行失败 System.err.println(event.getEventType() + ": " + new String(event.getData())); default: } } //关闭 gearman.shutdown(); } }
//worker端代码
package com.broada.gearman; import org.gearman.Gearman; import org.gearman.GearmanFunction; import org.gearman.GearmanFunctionCallback; import org.gearman.GearmanServer; import org.gearman.GearmanWorker; public class EchoWorker implements GearmanFunction { //function name public static final String ECHO_FUNCTION_NAME = "reverse"; //job server地址 public static final String ECHO_HOST = "192.168.125.131"; //job server监听的端口 public static final int ECHO_PORT = 4730; public static void main(String... args) { //创建一个Gearman实例 Gearman gearman = Gearman.createGearman(); /* * 创建一个jobserver * * Parameter 1: job server的IP地址 * Parameter 2: job server监听的端口 * *job server收到client的job,并将其分发给注册worker * */ GearmanServer server = gearman.createGearmanServer( EchoWorker.ECHO_HOST, EchoWorker.ECHO_PORT); //创建一个Gearman的worker GearmanWorker worker = gearman.createGearmanWorker(); //告诉工人如何执行工作(主要实现了GearmanFunction接口) worker.addFunction(EchoWorker.ECHO_FUNCTION_NAME, new EchoWorker()); //worker连接服务器 worker.addServer(server); } @Override public byte[] work(String function, byte[] data, GearmanFunctionCallback callback) throws Exception { //work方法实现了GearmanFunction接口中的work方法,本实例中进行了字符串的反写 if(data != null){ String str = new String(data); StringBuffer sb = new StringBuffer(str); return sb.reverse().toString().getBytes(); }else{ return "未接收到data".getBytes(); } } }
*ECHO_HOST = "192.168.125.131"为安装了Gearman并开启geramand服务的主机地址
*int ECHO_PORT = 4730默认端口为4730
相关推荐
本篇文章将深入探讨 Gearman 的 Java APIs,并通过一个小 Demo 展示其用法。 ### Gearman 的基本概念 1. **Worker**:工作进程,负责接收并执行 Gearman 服务器分发的任务。 2. **Client**:客户端,用于提交任务...
Gearman-Java是Java语言对Gearman的客户端库,它提供了与Gearman服务器通信的能力,用于分发工作负载或者执行异步任务。 在"gearman-java.zip_BadMagicException_Gearman java"这个问题中,`BadMagicException`是一...
java实现gearman的job实现的jar包,包括gearman server,client和work客户端API
gearman的java库有两个,一个是gearman service ,一个是gearman java,相比来说service版本更好用一些,并且网上的教程一般是用的这个版本。因此我打好了gearman service的包提供给需要的开发者使用。
java-gearman-service-0.6.6.zip 包,gearman分为3部分,client - server - worker,创建 java 版本的client和worker部分。 其实在gearman中,client和worker的编写不复杂,但是不同厂商提供的API是不大相同的,本...
`gearman-java-0.04.jar`是Gearman Java客户端的编译后版本,包含预编译的Java类,可以直接在Java项目中作为依赖使用,无需自行编译源代码。通过引入这个jar文件,开发者可以轻松地在Java应用中调用Gearman的功能,...
Java Gearman Service 0.6.6 是一个用于Java开发的 Gearman 调度工具包,它提供了在Java环境中与Gearman服务器交互的能力。Gearman是一个通用的工作队列系统,设计用来解耦那些需要异步处理的任务,使得任务的发起者...
实测可用
实测可用
Gearman是一个分发任务的程序框架,可以用在各种场合,与Hadoop相比,Gearman更偏向于任务分发功能。它的 任务分布非常 简单,简单得可以只需要用脚本即可完成。Gearman最初用于LiveJournal的图片resize功能,由于...
实测可用
实测可用
java实现gearman的job实现的jar包,包括gearman server,client和work客户端API
Gearman中文手册,gearman手册chm,Gearman中文详解,分享gearman技术心得,主要是为了分享技术,所以不要大家的资源分。
### Gearman文档与集群计算框架的关键知识点 #### 一、Gearman概述 **Gearman**是一种分布式任务调度框架,主要用于跨机器或者同一机器上的不同进程之间分发任务。它允许开发者将任务分解并分配给一组工作节点...
总之,Gearman提供了一种灵活的框架,用于在分布式环境中处理任务,通过合理配置和使用,能够有效地提高系统的并发处理能力和响应速度。搭建和维护Gearman环境需要对Linux系统、网络编程以及相关库有一定的理解,但...
GearMAN是一个高效的分布式任务框架,最初设计用于解决Web2.0环境中图片处理等耗时任务的快速分配和执行问题。它的名字来源于“Generic Worker Manager”,意在成为一个通用的任务分发工具。GearMAN通过将任务分配给...
总结一下,这个"Gearman C# API和示例"项目提供了一个C#开发者与Gearman服务交互的基础框架,涵盖了客户端和工作者的实现。通过学习和使用这个项目,你可以更好地理解和利用Gearman在分布式系统中的优势,提升你的...
Gearman 是一个跨语言的、通用的任务调度框架,它可以将任务分发到多台服务器上,使得大规模应用可以有效地利用系统资源。 ### Gearman 的核心概念 1. **Worker**:工作进程,负责接收并执行 Gearman 服务器分发的...
这个库提供了一个Laravel服务提供者和服务容器绑定,使得在Laravel框架内使用Gearman变得更加方便。 ** 安装与配置 ** 首先,你需要通过Composer安装`mhlavc/gearman`库: ```bash composer require mhlavc/...