Java 红隼指南/教程/文档?

Java 红隼指南/教程/文档?,java,kestrel,Java,Kestrel,我试图了解Kestrel是如何工作的,但我甚至很难在Java中找到一个使用它作为库的工作示例 是否有人有链接或可以帮助我设置队列 我找到了,但在上一版本中不起作用..:/ 我也有同样的问题。我找到了这个链接,它显示了一个使用PHP创建的客户端。我能够以此作为创建Java客户端的基础: import java.io.IOException; 导入java.net.InetSocketAddress; 导入java.util.concurrent.ExecutionException; 导入java

我试图了解Kestrel是如何工作的,但我甚至很难在Java中找到一个使用它作为库的工作示例

是否有人有链接或可以帮助我设置队列


我找到了,但在上一版本中不起作用..:/

我也有同样的问题。我找到了这个链接,它显示了一个使用PHP创建的客户端。我能够以此作为创建Java客户端的基础:

import java.io.IOException;
导入java.net.InetSocketAddress;
导入java.util.concurrent.ExecutionException;
导入java.util.concurrent.Future;
导入net.spy.memcached.MemcachedClient;
公共类KestrelClient{
private MemcachedClient client=null;
私有字符串kestrelHost=null;
private int kestrelPort=-1;
公共KestrelClient(最终字符串kestrelHost,最终整数kestrelPort)
{
this.kestrelHost=kestrelHost;
this.kestrelPort=kestrelPort;
尝试
{
this.client=newmemcachedclient(newinetsocketaddress(this.kestrelHost,this.kestrelPort));
}
捕获(IOE异常)
{
e、 printStackTrace();
}
}
公共布尔集(最终字符串queueName、最终整数过期、最终对象数据)
{
Future-setFuture=this.client.set(队列名称、到期日、数据);
尝试
{
返回setFuture.get().booleanValue();
}
捕捉(中断异常e)
{
e、 printStackTrace();
}
捕获(执行例外)
{
e、 printStackTrace();
}
返回false;
}
公共对象reliableRead(最终字符串queueName,最终整数超时)
{
Object Object=this.client.get(queueName+”/close/open/t=“+timeout);
closeReliableRead(队列名称);
返回对象;
}
public void closeReliableRead(最终字符串queueName)
{
this.client.get(queueName+“/close”);
}
public void abortReliableRead(最终字符串队列名称)
{
this.client.get(queueName+“/abort”);
}
}
这并不完美,但应该让你开始。(依赖于SpymeCached。)


祝你好运

我也有同样的问题。我找到了这个链接,它显示了一个使用PHP创建的客户端。我能够以此作为创建Java客户端的基础:

import java.io.IOException;
导入java.net.InetSocketAddress;
导入java.util.concurrent.ExecutionException;
导入java.util.concurrent.Future;
导入net.spy.memcached.MemcachedClient;
公共类KestrelClient{
private MemcachedClient client=null;
私有字符串kestrelHost=null;
private int kestrelPort=-1;
公共KestrelClient(最终字符串kestrelHost,最终整数kestrelPort)
{
this.kestrelHost=kestrelHost;
this.kestrelPort=kestrelPort;
尝试
{
this.client=newmemcachedclient(newinetsocketaddress(this.kestrelHost,this.kestrelPort));
}
捕获(IOE异常)
{
e、 printStackTrace();
}
}
公共布尔集(最终字符串queueName、最终整数过期、最终对象数据)
{
Future-setFuture=this.client.set(队列名称、到期日、数据);
尝试
{
返回setFuture.get().booleanValue();
}
捕捉(中断异常e)
{
e、 printStackTrace();
}
捕获(执行例外)
{
e、 printStackTrace();
}
返回false;
}
公共对象reliableRead(最终字符串queueName,最终整数超时)
{
Object Object=this.client.get(queueName+”/close/open/t=“+timeout);
closeReliableRead(队列名称);
返回对象;
}
public void closeReliableRead(最终字符串queueName)
{
this.client.get(queueName+“/close”);
}
public void abortReliableRead(最终字符串队列名称)
{
this.client.get(queueName+“/abort”);
}
}
这并不完美,但应该让你开始。(依赖于SpymeCached。)


祝你好运

我也有同样的问题。我最初使用的是xmemcached客户机,但后来发现它更易于使用,并且周围有一个简单的包装器。该包装器成为jestrel,在Apache许可下可在此处使用:


我设计jestrel API是为了非常简单。它在生产环境中经过测试,性能良好。试试看,让我知道你的想法。

我也有同样的问题。我最初使用的是xmemcached客户机,但后来发现它更易于使用,并且周围有一个简单的包装器。该包装器成为jestrel,在Apache许可下可在此处使用:

我设计jestrel API是为了非常简单。它在生产环境中经过测试,性能良好。试试看,让我知道你的想法

import java.io.IOException;
import java.net.InetSocketAddress;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;
import net.spy.memcached.MemcachedClient;

public class KestrelClient {
    private MemcachedClient client = null;
    private String kestrelHost = null;
    private int kestrelPort = -1;

    public KestrelClient(final String kestrelHost, final int kestrelPort)
    {
        this.kestrelHost = kestrelHost;
        this.kestrelPort = kestrelPort;

        try
        {
            this.client = new MemcachedClient(new InetSocketAddress(this.kestrelHost, this.kestrelPort));
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }
    }

    public boolean set(final String queueName, final int expiration, final Object data)
    {
        Future<Boolean> setFuture = this.client.set(queueName, expiration, data);

        try
        {
            return setFuture.get().booleanValue();
        }
        catch (InterruptedException e)
        {
            e.printStackTrace();
        }
        catch (ExecutionException e)
        {
            e.printStackTrace();
        }

        return false;
    }

    public Object reliableRead(final String queueName, final int timeout)
    {
        Object object = this.client.get(queueName + "/close/open/t=" + timeout);
        closeReliableRead(queueName);
        return object;
    }

    public void closeReliableRead(final String queueName)
    {
        this.client.get(queueName + "/close");
    }

    public void abortReliableRead(final String queueName)
    {
        this.client.get(queueName + "/abort");
    }
}