小编2po*_*kes的帖子

Ruby Net :: FTP超时线程

我试图通过使用线程FTP连接来加速多个FTP下载.我的问题是我总是有线程挂起.我正在寻找一种干净的方式来告诉FTP它需要重试ftp事务,或者至少知道FTP连接何时挂起.

在下面的代码中,我正在线程化5/6个单独的FTP连接,其中每个线程都有一个预期下载的文件列表.当脚本完成时,一些线程挂起并且无法连接.我使用变量@last_updated来表示上次成功下载的时间.如果当前时间+ 20秒超过@last_updated,则终止剩余的线程.有没有更好的办法?

threads = []
max_thread_pool = 5
running_threads = 0
Thread.abort_on_exception = true

existing_file_count = 0
files_downloaded = 0

errors = []
missing_on_the_server = []
@last_updated = Time.now

if ids.length > 0
    ids.each_slice(ids.length / max_thread_pool) do |id_set|
        threads << Thread.new(id_set) do |t_id_set|
            running_threads += 1
            thread_num = running_threads
            thread_num.freeze
            puts "making thread # #{thread_num}"
            begin
                ftp = Net::FTP.open(@remote_site)
                ftp.login(@remote_user, @remote_password)
                ftp.binary = true
                #ftp.debug_mode = true
                ftp.passive = false
            rescue
                raise "Could not establish FTP connection"
            end
            t_id_set.each …
Run Code Online (Sandbox Code Playgroud)

ruby ftp

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

如何在javascript中向XML添加其他xmlns命名空间属性

我试图通过浏览器中的javascript将多个命名空间附加到XML元素上有点困难..我尝试了十几种不同的方法无济于事:(我通常使用普通的旧javascript但是为了这个缘故保持这个例子简短,这就是我正在做的事情将通过jQuery完成:

var soapEnvelope = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"></soapenv:Envelope>';
var jXML = jQuery.parseXML(soapEnvelope);
$(jXML.documentElement).attr("xmlns:xsd", "http://www.w3.org/2001/XMLSchema");
Run Code Online (Sandbox Code Playgroud)

在Chrome和FF中,这可以按预期工作,得到如下结果:

<soapenv:Envelope 
   xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
   xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
Run Code Online (Sandbox Code Playgroud)

但是在IE9中,我得到了这样的结果:

<soapenv:Envelope 
   xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
   xmlns:NS1="" NS1:xmlns:xsd="http://www.w3.org/2001/XMLSchema"/>
Run Code Online (Sandbox Code Playgroud)

如果没有IE9将这个NS1前缀添加到我的命名空间,我找不到添加此命名空间属性的方法.此外,如果我尝试将此结果传回$ .parseXML(结果),我会收到格式错误的XML异常.

我是否误解了与IE中声明命名空间的方式有关或者有人建议我可以在浏览器中获得一致的结果吗?

提前致谢

javascript xml jquery

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

标签 统计

ftp ×1

javascript ×1

jquery ×1

ruby ×1

xml ×1