我在netty中编写服务器,我需要调用memcached.我正在使用spymemcached,可以轻松地进行同步memcached调用.我希望这个memcached调用是异步的.那可能吗?netty提供的示例似乎没有帮助.
我尝试使用回调:ExecutorService在我的处理程序中创建了一个池,并向该池提交了一个回调工作程序.像这样:
公共类MyHandler扩展ChannelInboundMessageHandlerAdapter <MyPOJO>实现CallbackInterface {
Run Code Online (Sandbox Code Playgroud)... 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); }}
CallingbackWorker 好像:
public class CallingbackWorker实现Callable {
Run Code Online (Sandbox Code Playgroud)public CallingbackWorker(String key, CallbackInterface c) { this.c = c; this.key = key; } public Object call() { //get value from key c.myCallback(value); }
然而,当我这样做,this.ctx.nextOutboundMessageBuf()在myCallback卡住.
总的来说,我的问题是:如何在Netty中进行异步memcached调用?
我正在尝试在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的分布式缓存工作
我使用eclipse进行android开发.在LogCat中,我看到了大量以下消息:
Hit fetch suggested group cluster rate limit
Run Code Online (Sandbox Code Playgroud)
这是值得关注的吗?
每次启动mysql时,我输入的第一个查询是"use my_db_name",其中my_db_name是我一直使用的数据库的名称.我希望mysql默认使用my_db_name.有没有办法可以做到这一点?
编辑:我从命令行连接到mysql.
我有一个如下数组:
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)
我想知道是否有更好的方法来完成这项任务.
我有一份清单清单,说:
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)