小编Sti*_*ivi的帖子

结束对python 2.7的支持?

是否有一个已知的日期/时间框架,不再支持python 2.7而支持python 3?

python python-2.x python-2.7 python-3.x

131
推荐指数
8
解决办法
5万
查看次数

为什么Ruby中的curl比命令行卷曲慢?

我试图下载超过1米的页面(以序列ID结尾的URL).我已经实现了一种具有可配置数量的下载线程和一个处理线程的多用途下载管理器.下载器批量下载文件:

curl = Curl::Easy.new

batch_urls.each { |url_info|
    curl.url = url_info[:url]
    curl.perform
    file = File.new(url_info[:file], "wb")
    file << curl.body_str
    file.close
    # ... some other stuff
}
Run Code Online (Sandbox Code Playgroud)

我试过下载8000页样本.使用上面的代码时,我在2分钟内得到1000.当我将所有URL写入文件并在shell中执行时:

cat list | xargs curl
Run Code Online (Sandbox Code Playgroud)

我在两分钟内生成了所有8000页.

事情是,我需要它在ruby代码中,因为有其他监视和处理代码.

我试过了:

  • Curl :: Multi - 它以某种方式更快,但错过了50-90%的文件(不下载它们并且没有给出原因/代码)
  • 使用Curl :: Easy的多个线程 - 与单线程的速度大致相同

为什么重用Curl :: Easy比后续命令行curl调用慢,如何让它更快?或者我做错了什么?

我更喜欢修复我的下载管理器代码,而不是以不同的方式为这种情况下载.

在此之前,我正在调用命令行wget,我提供了一个包含URL列表的文件.Howerver,并非所有错误都得到了处理,在使用URL列表时也无法单独为每个URL指定输出文件.

现在在我看来,最好的方法是使用系统调用'curl'命令的多个线程.但是为什么我可以在Ruby中直接使用Curl?

下载管理器的代码在这里,如果它可能会有所帮助:下载管理器(我玩过超时,从未将其设置为各种值,它似乎没有帮助)

任何提示赞赏.

ruby curl http download curb

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

ruby的数据库抽象/适配器

您在Ruby中使用的数据库抽象/适配器是什么?我主要对数据导向的功能感兴趣,而不是那些具有对象映射的功能(如活动记录或数据映射器).

我目前正在使用续集.还有其他选择吗?

我最感兴趣的是:

  • 简单,干净,不含糊的API
  • 数据选择(显然),过滤和聚合
  • 没有字段映射的原始值选择:SELECT col1,col2,col3 => [val1,val2,val3]不是{:col1 => val1 ...}的散列
  • 能够传递要选择的列/值列表:select(array_of_columns)(not:dataset.select(:col1,:col2,:col3),它要求列已知)
  • API以一致(和工作)的方式考虑表模式'some_schema.some_table'; 也为此反思(从表中获取模式)
  • 数据库反射:获取表列的列表,它们的数据库存储类型以及可能的适配器抽象类型
  • 表创建,删除
  • 能够在循环中使用其他表(插入,更新)枚举来自另一个表的选择,而无需从枚举的表中获取所有记录

目的是在编写代码时操纵具有未知结构的数据,这与对象映射相反,其中结构或大多数结构通常是众所周知的.我不需要对象映射开销.

有哪些选项,包括对象映射库的后端?

ruby database-abstraction adapter sequel

3
推荐指数
1
解决办法
1015
查看次数

使用模板访问angular指令中的父作用域

我想重用一个表单来编辑一种类型的属性.我有一个编辑列表:

ModelerControllers.controller('ModelController', ['$rootScope', '$scope', '$http', '$q',
    function ($rootScope, $scope, $http, $q) {
        ...
        $scope.mappingTypes = [
            {"name": "mixpanel", "label": "Mixpanel"},
            {"name": "mongo", "label": "Mongo"},
            {"name": "slicer", "label": "Slicer"},
            {"name": "sql", "label": "SQL"}, 
            {"name": "", "label": "Other"}
        ];
        ...
    }
]);
Run Code Online (Sandbox Code Playgroud)

然后我有一个指令:

CubesModelerApp.directive("mappingEditor", function() {
    return {
        templateUrl: 'views/partials/mapping.html',
        require: "ngModel",
        scope: {
            content: "=ngModel",
            mappingTypes: "@mappingTypes"
        },
        link: function($scope, $element, $attrs) {
            $scope.mappingTypes = $scope.$parent.mappingTypes;
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

用作:

<div mapping-editor ng-model='content.mapping'></div>
Run Code Online (Sandbox Code Playgroud)

使用模板内容(相关块):

<!-- language: html -->

...
<select class="form-control" …
Run Code Online (Sandbox Code Playgroud)

javascript angularjs

0
推荐指数
1
解决办法
5646
查看次数