小编Rob*_*mba的帖子

Gevent/Eventlet猴子修补DB驱动程序

在做Gevent/Eventlet猴子修补之后 - 我可以假设每当DB驱动程序(例如redis-py,pymongo)通过标准库(例如socket)使用IO时,它将是异步的吗?

所以使用eventlets猴子修补就足以使例如:在eventlet应用程序中使用redis-py非阻塞?

据我所知,如果我注意连接使用(例如,为每个greenlet使用不同的连接),这应该足够了.但我想确定.

如果您知道还需要什么,或者如何使用Gevent/Eventlet正确使用DB驱动程序,请同时输入.

python asynchronous pymongo gevent eventlet

9
推荐指数
1
解决办法
4236
查看次数

GADT与存在量化类型(*forall*)

可以使用GADT来表达存在量化类型.

我看到GADT更通用 - 数据类型扩展,第7.4.7节

当使用存在量化类型然后GADT更好?与存在量化类型相比,使用GADT有任何缺点吗?

haskell types existential-type gadt

8
推荐指数
1
解决办法
791
查看次数

"`class declaration head` {val_name:Type =>`class body`}"的语法含义是什么?

在阅读有关Scala的一些文章时,我发现了一些带有好奇语法的例子,我可能会错误地理解它

class Child[C <: Child[C]] {
  some_name : C =>                   // here, what does it mean?
   var roomie : Option[C] = None

   def roomWith(aChild : C)= { 
     roomie = Some(aChild)
     aChild.roomie = Some(this) 
   }
}
class Boy extends Child[Boy]
Run Code Online (Sandbox Code Playgroud)

我找到了类似特征的例子.

这是否意味着我this在类范围内声明对象的类型C

syntax scala

7
推荐指数
1
解决办法
312
查看次数

如何解压缩io.ReadCloser?

我取从HTTP服务的数据,我想将它解压缩在飞行.这是我目前的做法:

resp, err := http.Get(url)
if err != nil {
    logger.Fatalf("Can't fatch %s data. %v", url, err)
}
logger.Info("Fetched data from %s", url)
content_zipped, err := ioutil.ReadAll(resp.Body)
resp.Body.Close()
if err != nil {
    logger.Fatal(err)
}
zip_reader, err := zip.NewReader(bytes.NewReader(content_zipped), int64(len(content_zipped)))
Run Code Online (Sandbox Code Playgroud)

有没有办法解压resp.Body而不一次读取所有内容(6.行)?我的意思是流式传输字节.

zip go

7
推荐指数
1
解决办法
2644
查看次数

filter + orderby的RethinkDB索引

让我们说评论表具有以下结构:

id | author | timestamp | body
Run Code Online (Sandbox Code Playgroud)

我想使用索引来有效地执行以下查询:

r.table('comments').getAll("me", {index: "author"}).orderBy('timestamp').run(conn, callback)
Run Code Online (Sandbox Code Playgroud)

我可以使用其他有效的方法吗?

看起来当前索引不支持表的过滤结果.在创建索引timestamp并将其添加为提示时,orderBy('timestamp', {index: timestamp})我收到以下错误:

RqlRuntimeError:索引order_by只能在TABLE上执行.在:

rethinkdb

7
推荐指数
1
解决办法
2489
查看次数

什么是Scala/Java中的NIO问题

在jvm中搜索Web并发时,我发现了有关为Scala/Java搜索非阻塞IO库的问题.

有什么问题?如果我想向文件/套接字发送内容,我可以启动单独的线程来完成这项工作.

我知道使用基于事件的线程可能存在问题 - 因为整个系统可能被阻止.但它是否引用了JVM/Scala?

补充:
如果我错了,请纠正我:
我认为当你需要以异步方式调用某些IO函数时,需要进入单独的进程或系统(重)线程.我对吗?
所以 - 所有关于用通用语言解决这类问题的问题都涉及到创建和管理单独的进程或线程.因此,该语言的唯一便利是创建一些线程池,这些线程将被分配给异步中的IO操作.

所以我的假设是.
句子:语言X比Y更好,因为调用异步IO操作不会阻止虚拟机是错误的,因为在支持系统线程的每种语言中都有管理NIO的可能性,唯一的区别是语言X对此有更好的支持.内置库/语言功能.

  1. 这是假设的真相吗?
  2. 某些语言可以在没有OS系统支持的情况下实现NIO (通过进程/线程)

java parallel-processing concurrency nio scala

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

什么是sbt的命令行参数?

我在某处读到sbt的所有参数:

java -jar /home/robert/.conscript/sbt-launch.jar  arg1 arg2 ..
Run Code Online (Sandbox Code Playgroud)

是启动sbt的依赖项.

以"@"开头的参数怎么样?

问题是因为我想发现征兵是如何运作的.它只是SBT与'@/home/robert/.conscript/n8han/conscript/cs/launchconfig'作为第一个参数,其他命令行参数也传递给(通过"$ @"在sbt的最后一个参数).launchconfig是一个简单的ini like文件:

[app]
  version: 0.3.4
  org: net.databinder
  name: conscript
  class: conscript.Conscript
[scala]
  version: 2.9.1
[repositories]
  local
  scala-tools-releases
  maven-central
[boot]
  directory: /home/robert/.conscript/boot
Run Code Online (Sandbox Code Playgroud)

但是没有关于依赖关系的信息.此外,conscript没有任何其他文件(除了sbt和cs runner,这是sbt命令).

scala sbt

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

如何在PhantomJS或CasperJS中导入其他javascript模块

我正在尝试使用CasperJS构建功能测试. caseperjs由后端测试套件使用以下命令运行:

PHANTOMJS_EXECUTABLE=../client/node_modules/phantomjs/bin/phantomjs  ../client/ext_modules/casperjs/bin/casperjs test ../client/test/functional/init.coffee
Run Code Online (Sandbox Code Playgroud)

init.coffee中,我想导入/包含其旁边就位的其他模块(文件).怎么做?

以下不起作用:

require("user")
Run Code Online (Sandbox Code Playgroud)

我想要的是将其他文件中的内容导入init.coffee

javascript coffeescript phantomjs casperjs

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

在关闭Go中的应用程序之前是否需要关闭数据库连接?

在Go中,当使用SQL数据库时,是否需要db.Close在关闭应用程序之前关闭DB()?DB会自动检测到连接已经死亡吗?

sql database go

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

如何在 mocha 测试中使用 TypeScript 声明文件?

我有一个 TypeScript 项目,其中的测试是用 TypeScript 编写的。我想用来mocha直接测试TS文件。我为此使用了 ts-node,如ts-node#mocha 中所述。在项目中,我使用了一个没有 TS 类型定义的 JS 库。所以我d.ts为此创建了一个文件。编译和运行项目时一切正常。但是摩卡咖啡失败了:

% yarn mocha --require ts-node/register --require source-map-support/register ./test/*.ts 

src/client.ts:3:26 - error TS7016: Could not find a declaration file for module 'algosdk'. '/home/robert/projects/algorand/ts-mocha/node_modules/algosdk/index.js' implicitly has an 'any' type.
  Try `npm install @types/algosdk` if it exists or add a new declaration (.d.ts) file containing `declare module 'algosdk';`

3 import * as algosdk from "algosdk";
Run Code Online (Sandbox Code Playgroud)

看来 ts-node 无法识别这些d.ts文件。

唯一有效的解决方案是使用require而不是import语句,但这不会将类型链接到 algosdk。 …

mocha.js node.js typescript typescript-typings ts-node

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