小编Viv*_*dey的帖子

如何在netty中异步访问memcached

我在netty中编写服务器,我需要调用memcached.我正在使用spymemcached,可以轻松地进行同步memcached调用.我希望这个memcached调用是异步的.那可能吗?netty提供的示例似乎没有帮助.

我尝试使用回调:ExecutorService在我的处理程序中创建了一个池,并向该池提交了一个回调工作程序.像这样:

公共类MyHandler扩展ChannelInboundMessageHandlerAdapter <MyPOJO>实现CallbackInterface {

   ...
   private static ExecutorService pool = Executors.newFixedThreadPool(20);


   @Override
   public void messageReceived(ChannelHandlerContext ctx, MyPOJO pojo) {
       ...
       CallingbackWorker worker = new CallingbackWorker(key, this);
       pool.submit(worker);
       ...
   }
   public void myCallback() {
       //get response
       this.ctx.nextOutboundMessageBuf().add(response);
   }
Run Code Online (Sandbox Code Playgroud)

}

CallingbackWorker 好像:

public class CallingbackWorker实现Callable {

  public CallingbackWorker(String key, CallbackInterface c) {
       this.c = c;
       this.key = key;
  }
  public Object call() {
    //get value from key
    c.myCallback(value);
  }
Run Code Online (Sandbox Code Playgroud)

然而,当我这样做,this.ctx.nextOutboundMessageBuf()myCallback卡住.

总的来说,我的问题是:如何在Netty中进行异步memcached调用?

memcached spymemcached netty

6
推荐指数
1
解决办法
1487
查看次数

在弹性映射中使用带有Pig的分布式缓存

我正在尝试在Amazon的Elastic Map Reduce上运行我的Pig脚本(使用UDF).我需要在UDF中使用一些静态文件.

我在UDF中做了类似的事情:

public class MyUDF extends EvalFunc<DataBag> {
    public DataBag exec(Tuple input) {
        ...
        FileReader fr = new FileReader("./myfile.txt");
        ...
    }
    public List<String> getCacheFiles() {
        List<String> list = new ArrayList<String>(1);
        list.add("s3://path/to/myfile.txt#myfile.txt");
        return list;
    }
}
Run Code Online (Sandbox Code Playgroud)

我已将文件存储在我的s3存储桶/path/to/myfile.txt中

但是,在运行我的Pig工作时,我看到一个例外:

Got an exception java.io.FileNotFoundException: ./myfile.txt (No such file or directory)

所以,我的问题是:在亚马逊的EMR上运行pig脚本时,如何使用分布式缓存文件?

编辑:我发现pig-0.6与pig-0.9不同,它没有一个名为getCacheFiles()的函数.亚马逊不支持pig-0.6,因此我需要找出一种不同的方式来获得0.6的分布式缓存工作

hadoop apache-pig elastic-map-reduce

5
推荐指数
1
解决办法
1058
查看次数

点击提取建议的群集群速率限制

我使用eclipse进行android开发.在LogCat中,我看到了大量以下消息:

Hit fetch suggested group cluster rate limit
Run Code Online (Sandbox Code Playgroud)

这是值得关注的吗?

android

5
推荐指数
1
解决办法
239
查看次数

每次启动mysql时如何避免"使用db_name"

每次启动mysql时,我输入的第一个查询是"use my_db_name",其中my_db_name是我一直使用的数据库的名称.我希望mysql默认使用my_db_name.有没有办法可以做到这一点?

编辑:我从命令行连接到mysql.

mysql

4
推荐指数
1
解决办法
289
查看次数

查找一系列dicts中的最小值

我有一个如下数组:

people = [{'node': 'john', 'dist': 3}, 
          {'node': 'mary', 'dist': 5}, 
          {'node': 'alex', 'dist': 4}]
Run Code Online (Sandbox Code Playgroud)

我想计算所有'dist'键的最小值.例如,在上面的例子中,答案是3.

我写了以下代码:

min = 99999
for e in people:
    if e[dist] < min:
        min = e[dist]
print "minimum is " + str(min)
Run Code Online (Sandbox Code Playgroud)

我想知道是否有更好的方法来完成这项任务.

python

2
推荐指数
1
解决办法
182
查看次数

处理列表列表

我有一份清单清单,说:

    arr = [[1, 2], [1, 3], [1, 4]]
Run Code Online (Sandbox Code Playgroud)

我想在每个内部列表中附加100.以上示例的输出将是:

    arr = [[1, 2, 100], [1, 3, 100], [1, 4, 100]]
Run Code Online (Sandbox Code Playgroud)

我当然可以这样做:

    for elem in arr:
        elem.append(100)
Run Code Online (Sandbox Code Playgroud)

但有没有更多的pythonic可以做到?为什么以下不起作用:

    arr = [elem.append(100) for elem in arr]
Run Code Online (Sandbox Code Playgroud)

python

2
推荐指数
1
解决办法
756
查看次数