peplum 0.2.5 → 0.2.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: aec29bf9b09d3b32cb143536ea66a1550b41008e7856108949ef2a45f74c3761
4
- data.tar.gz: 656a2e85c329a0005da906ba9f649553277c40feb772930ca66c99b5115be906
3
+ metadata.gz: 2c2c58c0b4f8d82bb6376ca24b17b1b07585630e257f0c38717d19a02a71ce76
4
+ data.tar.gz: 235f665ccb1f8c49d6a991166a55f5871556a483c3b57937d89427cf5694a2f6
5
5
  SHA512:
6
- metadata.gz: 3894e8846b387ab36ba705b9137ab7ea4a122057d62378224bc43f29caaf1600ce27d41ffb3472e81b0524b5d03330f935a3d79a3ae0f7197d4ae8500c218e91
7
- data.tar.gz: 8c420ac4afbb2788b0434971e6865e33b03d086cc2275bc504fe65f0f06ced8ea729abf26494bc360875c2a3be1ea13a06da5940062a907bc48d0148172c82db
6
+ metadata.gz: 6625f8916a0cfb646972c700d1f68cd7d97ba5fbc23f9637896190fffdce28f64c2878e2cc0c811ba37702fab63fe1fa65f0e8561203cbad420177e293e82a7c
7
+ data.tar.gz: 22cf60063e6040de45ba80c3fb5cfa1930898bcd46615b6ce80bf67baa12d4b9eb30ca9d8e79c3cbdc6b635600fb29e14eadac9940cb00a144ac0c6b7cf71f22
@@ -5,8 +5,6 @@ require 'peplum/core_ext/array'
5
5
 
6
6
  module Peplum
7
7
  class Application < Cuboid::Application
8
- require 'peplum/application/peers'
9
-
10
8
  require 'peplum/application/services/shared_hash'
11
9
  require 'peplum/application/services/scheduler'
12
10
 
@@ -27,11 +25,12 @@ module Peplum
27
25
  end
28
26
 
29
27
  attr_reader :peers
28
+ attr_reader :master
30
29
 
31
30
  def initialize(*)
32
31
  super
33
32
 
34
- @peers = Peers.new
33
+ @peers = Cuboid::RPC::Server::Instance::Peers.new
35
34
  end
36
35
 
37
36
  def run
@@ -53,6 +52,11 @@ module Peplum
53
52
  end
54
53
  end
55
54
 
55
+ def worker?
56
+ # Has a master?
57
+ !!@master
58
+ end
59
+
56
60
  # Implements:
57
61
  # * `.run` -- Worker; executes its payload against `objects`.
58
62
  # * `.group` -- Splits given `objects` into groups for each worker.
@@ -73,13 +77,13 @@ module Peplum
73
77
 
74
78
  def execute( peplum_options, payload_options )
75
79
  master_info = peplum_options.delete( 'master' )
80
+ @master = Processes::Instances.connect( master_info['url'], master_info['token'] )
76
81
 
77
82
  self.peers.set( peplum_options.delete( 'peers' ) || {} )
78
83
 
79
84
  report_data = payload.run( peplum_options['objects'], payload_options )
80
85
 
81
- master = Processes::Instances.connect( master_info['url'], master_info['token'] )
82
- master.scheduler.report report_data, Cuboid::Options.rpc.url
86
+ @master.scheduler.report report_data, Cuboid::Options.rpc.url
83
87
  end
84
88
 
85
89
  def schedule( peplum_options, payload_options )
@@ -121,7 +125,7 @@ module Peplum
121
125
  objects: groups.pop,
122
126
  peers: peers,
123
127
  master: {
124
- url: Cuboid::Options.rpc.url,
128
+ url: Cuboid::Options.rpc.url,
125
129
  token: Cuboid::Options.datastore.token
126
130
  }
127
131
  },
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Peplum
4
- VERSION = "0.2.5"
4
+ VERSION = "0.2.7"
5
5
  end
data/peplum.gemspec CHANGED
@@ -8,8 +8,8 @@ Gem::Specification.new do |spec|
8
8
  spec.authors = ["Tasos Laskos"]
9
9
  spec.email = ["tasos.laskos@gmail.com"]
10
10
 
11
- spec.summary = "Distributed computing made easy."
12
- spec.description = "Distributed computing made easy."
11
+ spec.summary = "Distributed parallel computing made easy."
12
+ spec.description = "Distributed parallel computing made easy."
13
13
  spec.homepage = "http://ecsypno.com/"
14
14
  spec.required_ruby_version = ">= 2.6.0"
15
15
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: peplum
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.5
4
+ version: 0.2.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tasos Laskos
@@ -24,7 +24,7 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
- description: Distributed computing made easy.
27
+ description: Distributed parallel computing made easy.
28
28
  email:
29
29
  - tasos.laskos@gmail.com
30
30
  executables: []
@@ -34,7 +34,6 @@ files:
34
34
  - bin/.gitkeep
35
35
  - lib/peplum.rb
36
36
  - lib/peplum/application.rb
37
- - lib/peplum/application/peers.rb
38
37
  - lib/peplum/application/services/scheduler.rb
39
38
  - lib/peplum/application/services/shared_hash.rb
40
39
  - lib/peplum/core_ext/array.rb
@@ -61,5 +60,5 @@ requirements: []
61
60
  rubygems_version: 3.4.13
62
61
  signing_key:
63
62
  specification_version: 4
64
- summary: Distributed computing made easy.
63
+ summary: Distributed parallel computing made easy.
65
64
  test_files: []
@@ -1,33 +0,0 @@
1
- module Peplum
2
- class Application
3
-
4
- class Peers
5
- include Enumerable
6
-
7
- def initialize
8
- @peers = {}
9
- end
10
-
11
- def set( peer_info )
12
- peer_info.each do |url, token|
13
- next if url == self.self_url
14
- @peers[url] = Peplum::Application.connect( url: url, token: token )
15
- end
16
-
17
- nil
18
- end
19
-
20
- def each( &block )
21
- @peers.each do |_, client|
22
- block.call client
23
- end
24
- end
25
-
26
- def self_url
27
- Cuboid::Options.rpc.url
28
- end
29
-
30
- end
31
-
32
- end
33
- end