k3cloud-sdk 0.4.3 → 0.4.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 54bd3c4fb88b3d92fc46d42fbd9593a775387be902aaba4770ed8c5bc6e01334
4
- data.tar.gz: 46d438e27f12297fb4f4d94079673b96cd6291412591dec64b8e2723e10fe88d
3
+ metadata.gz: 9c129198e6a505d9b23108206100c842f1b0f94c0af6e23d7861653959ad45aa
4
+ data.tar.gz: dba6a6547c17d7e80fbf0aacee553a4c9f96f9c81c69d26867a52732ffdad93b
5
5
  SHA512:
6
- metadata.gz: d67e92e1d0bc2fd9da533f7c847451eea936eb8bcaaff9659756671daa8a78b5027697f66da4613e5be5c72e6211fdcb572e1611e09a978f35d12164bd4c09b7
7
- data.tar.gz: 88ec61fd61042c2c560a33e66e7c28786771c43a18464b7b1fbd835c3d37cfc7d5747026fd288a95777074599a73fe8a0e284ba0683f26a6115687812e7d3662
6
+ metadata.gz: 53fd09b1ea66c3c07c282fbc61ba19b98a34976e91786bd92f3e9f692f69e782ce3d7680011db3191575a11a5746a87b5d173027768217f92fbd86dfeca89d13
7
+ data.tar.gz: d3878ab3f399a20c9d915feb73f0cd0b0c2b23148924b71640a9239a4f77cd29b3988549397be8cbc7b3152b2de97429d791bf6f3efa4638fc62c3698c91e876
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- k3cloud-sdk (0.4.3)
4
+ k3cloud-sdk (0.4.4)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -24,6 +24,7 @@ GEM
24
24
 
25
25
  PLATFORMS
26
26
  arm64-darwin-22
27
+ arm64-darwin-23
27
28
 
28
29
  DEPENDENCIES
29
30
  k3cloud-sdk!
@@ -31,4 +32,4 @@ DEPENDENCIES
31
32
  rspec (~> 3.0)
32
33
 
33
34
  BUNDLED WITH
34
- 2.4.19
35
+ 2.4.14
data/lib/k3cloud/http.rb CHANGED
@@ -14,26 +14,42 @@ module K3cloud
14
14
  @url = url
15
15
  @header = header
16
16
  @body = body
17
- @connect_timeout = connect_timeout || 120
18
- @request_timeout = request_timeout || 120
17
+ @connect_timeout = connect_timeout || 2
18
+ @request_timeout = request_timeout || 2
19
19
  end
20
20
 
21
21
  def post
22
22
  uri = URI(@url)
23
23
  http = Net::HTTP.new(uri.host, uri.port)
24
24
  http.use_ssl = (uri.scheme == "https")
25
- http.open_timeout = @connect_timeout * 1000
26
- http.read_timeout = @request_timeout * 1000
25
+ http.open_timeout = @connect_timeout * 60
26
+ http.read_timeout = @request_timeout * 60
27
27
  request = Net::HTTP::Post.new(uri)
28
28
  request.initialize_http_header(@header)
29
29
  request["Content-Type"] = "application/json"
30
30
  request["User-Agent"] = "Kingdee/Ruby WebApi SDK"
31
31
  request.body = @body.to_json
32
- response = http.request(request)
33
- if response.code.to_i != 200 && response.code.to_i != 206
34
- raise K3cloud::ResponseError, "status: #{response.code}, desc: #{response.body}"
32
+ max_retries = 5 # 最大重试次数
33
+ retry_count = 0
34
+ sleep_interval = 5 # 重试间隔时间,单位秒
35
+
36
+ begin
37
+ response = http.request(request)
38
+ if response.code.to_i != 200 && response.code.to_i != 206
39
+ raise K3cloud::ResponseError, "status: #{response.code}, desc: #{response.body}"
40
+ end
41
+ response.body
42
+ rescue Errno::ETIMEDOUT, Net::OpenTimeout, Net::ReadTimeout => e
43
+ K3cloud.logger.error("Request timed out: #{e.message}")
44
+ if retry_count < max_retries
45
+ retry_count += 1
46
+ K3cloud.logger.info("Request timed out. Retrying #{retry_count}/#{max_retries} in #{sleep_interval} seconds...")
47
+ sleep(sleep_interval)
48
+ retry
49
+ else
50
+ raise K3cloud::ResponseError, "Request failed after #{max_retries} retries: #{e.message}, backtrace: #{e.backtrace}"
51
+ end
35
52
  end
36
- response.body
37
53
  end
38
54
  end
39
55
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module K3cloud
4
- VERSION = "0.4.3"
4
+ VERSION = "0.4.4"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: k3cloud-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.3
4
+ version: 0.4.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - zevinto
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-11-29 00:00:00.000000000 Z
11
+ date: 2024-07-19 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Ruby Gem for K3cloud OpenApi that uses cryptographic signature technology
14
14
  to avoid plaintext transmission of keys and enables automatic login.