Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Elixir HTTPoison post请求超时Eixir_Elixir - Fatal编程技术网

Elixir HTTPoison post请求超时Eixir

Elixir HTTPoison post请求超时Eixir,elixir,Elixir,我们正在使用一个用Go编写的文件系统。它被端口8888上的RESTAPI用来发布文件。我们遇到的问题是HTTPoison超时 我们发布到一个文件,一次又一次,我们得到HTTPoison请求超时 一些事实: 文件在海藻上得到更新,我们可以看到修改的日期 HTTPoison请求响应总是超时 我试过用卷发棒用于((i=1;i我认为问题在于网络带宽和/或延迟。基本上,你可以用max\u connections:1000同时打开1000个连接。我很确定文件系统本身和网络不会对此感到高兴。相反,你的示例中

我们正在使用一个用Go编写的文件系统。它被端口8888上的RESTAPI用来发布文件。我们遇到的问题是
HTTPoison
超时

我们发布到一个文件,一次又一次,我们得到HTTPoison请求超时

一些事实:

  • 文件在海藻上得到更新,我们可以看到修改的日期
  • HTTPoison请求响应总是超时

  • 我试过用卷发棒<代码>用于((i=1;i我认为问题在于网络带宽和/或延迟。基本上,你可以用
    max\u connections:1000
    同时打开1000个连接。我很确定文件系统本身和网络不会对此感到高兴。相反,你的示例中的
    curl
    请求确实是同步运行的,一个接一个


    max_connections
    的值降低到100,甚至更低,然后看看超时是否会消失。

    您认为错误是随机的,或者可能与您提供的参数有关联吗?错误是随机的。哪些参数?hackney参数?我在谈论传递给
    HTTPoison.post
    的参数。但是,由于它们与超时之间没有相关性,这将是一个棘手的问题。是的,这是真的,我一直在努力解决这个问题,已经到了死胡同。您是否尝试使用另一个HTTP客户端来实现,以检查是否只有HTTPoison才会发生这种情况?
      def seaweedfs_save(camera_exid, timestamp, image, _notes) do
        [{_, _, _, _, [server]}] = :ets.match_object(:storage_servers, {:_, "RW", :_, :_, :_})
        hackney = [pool: :seaweedfs_upload_pool]
        directory_path = construct_directory_path(camera_exid, timestamp, "recordings", "")
        file_name = construct_file_name(timestamp)
        file_path = directory_path <> file_name
        case HTTPoison.post("#{server.url}#{file_path}", {:multipart, [{file_path, image, []}]}, [], hackney: hackney) do
          {:ok, response} -> response
          {:error, error} -> Logger.info "[seaweedfs_save] [#{file_path}] [#{camera_exid}] [#{inspect error}]"
        end
      end
    
    :hackney_pool.child_spec(:seaweedfs_upload_pool, [timeout: 5000, max_connections: 1000])