puushload 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. data/lib/puushload.rb +22 -12
  2. metadata +1 -1
data/lib/puushload.rb CHANGED
@@ -9,6 +9,9 @@ require 'zip/zip'
9
9
  require 'logger'
10
10
  require 'tmpdir'
11
11
 
12
+ Zip.options[:continue_on_exists_proc] = true
13
+ Zip.options[:on_exists_proc] = true
14
+
12
15
  class PuushLoad
13
16
  MAX_THREADS = 20
14
17
  ARCHIVE_SIZE = 1000
@@ -27,29 +30,35 @@ class PuushLoad
27
30
  downloaded_files = 0
28
31
  archives = 0
29
32
  current_tmp_dir = Dir.mktmpdir
30
-
33
+ archive_file_counter = 0
31
34
  FileUtils.mkdir_p(@output_folder)
32
35
 
33
36
  PuushIDGenerator.generate do |id|
34
37
  spawned_threads << Thread.new {
35
- downloaded_files += 1 if PuushDownloader.download_file(id, current_tmp_dir, @logger)
38
+ if PuushDownloader.download_file(id, current_tmp_dir, @logger) then
39
+ downloaded_files += 1
40
+ archive_file_counter += 1
41
+ end
42
+
36
43
  }
37
- sleep 0.01
38
- if spawned_threads.length >= MAX_THREADS
44
+
45
+ if spawned_threads.length >= MAX_THREADS then
39
46
  spawned_threads.each { |spawnedThread| spawnedThread.join }
40
47
  spawned_threads.clear
41
48
  @logger.info "Killed some threads. #{downloaded_files} Files so far!"
42
-
43
- if downloaded_files % ARCHIVE_SIZE == 0 && downloaded_files > 0 then
44
- make_archive((@output_folder + "/" + archive_name(archives.to_s)), (current_tmp_dir))
45
-
46
- @logger.info "Created archive with id: #{archives} !"
49
+ end
50
+
51
+ if archive_file_counter >= ARCHIVE_SIZE then
52
+ archive_file_counter = 0
53
+ make_archive((@output_folder + "/" + archive_name(archives.to_s)), (current_tmp_dir))
47
54
 
48
- current_tmp_dir = Dir.mktmpdir
49
- archives += 1
50
- end
55
+ @logger.info "Created archive with id: #{archives} !"
56
+ current_tmp_dir = Dir.mktmpdir
57
+ archives += 1
51
58
  end
52
59
 
60
+ sleep 0.01
61
+
53
62
  end
54
63
  @logger.info "Actually, this is impossible, but you finished it!"
55
64
  end
@@ -59,6 +68,7 @@ class PuushLoad
59
68
  "puush" + archives + ".zip"
60
69
  end
61
70
 
71
+
62
72
  def make_archive(out_file, in_folder)
63
73
  files = Dir.entries(in_folder)
64
74
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: puushload
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: