gearman-ruby 3.0.2 → 3.0.3
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.
- data/Rakefile +2 -2
- data/VERSION.yml +1 -1
- data/examples/client_background.rb +3 -3
- data/examples/client_reverse.rb +2 -2
- data/examples/worker_reverse_string.rb +16 -9
- data/lib/gearman/worker.rb +16 -0
- metadata +6 -8
- data/examples/bgclient.rb +0 -19
    
        data/Rakefile
    CHANGED
    
    | @@ -8,8 +8,8 @@ begin | |
| 8 8 | 
             
              Jeweler::Tasks.new do |s|
         | 
| 9 9 | 
             
                s.name = "gearman-ruby"
         | 
| 10 10 | 
             
                s.summary = "Library for the Gearman distributed job system"
         | 
| 11 | 
            -
                s.email = " | 
| 12 | 
            -
                s.homepage = "http://github.com/ | 
| 11 | 
            +
                s.email = "gearman.ruby@librelist.com"
         | 
| 12 | 
            +
                s.homepage = "http://github.com/gearman-ruby/gearman-ruby"
         | 
| 13 13 | 
             
                s.description = "Library for the Gearman distributed job system"
         | 
| 14 14 | 
             
                s.authors = ["John Ewart", "Colin Curtin", "Daniel Erat", "Ladislav Martincik", "Pablo Delgado", "Mauro Pompilio", "Antonio Garrote", "Kim Altintop"]
         | 
| 15 15 | 
             
              end
         | 
    
        data/VERSION.yml
    CHANGED
    
    
| @@ -2,13 +2,13 @@ require 'rubygems' | |
| 2 2 | 
             
            #require 'gearman'
         | 
| 3 3 | 
             
            require '../lib/gearman'
         | 
| 4 4 |  | 
| 5 | 
            -
            servers = ['localhost: | 
| 5 | 
            +
            servers = ['localhost:4730',]
         | 
| 6 6 |  | 
| 7 7 | 
             
            client = Gearman::Client.new(servers)
         | 
| 8 8 | 
             
            taskset = Gearman::TaskSet.new(client)
         | 
| 9 9 |  | 
| 10 10 | 
             
            task = Gearman::Task.new('sleep', 20, { :background => true })
         | 
| 11 | 
            -
             | 
| 11 | 
            +
            task.on_complete {|d| puts d }
         | 
| 12 12 |  | 
| 13 13 | 
             
            taskset.add_task(task)
         | 
| 14 | 
            -
             | 
| 14 | 
            +
            taskset.wait(100)
         | 
    
        data/examples/client_reverse.rb
    CHANGED
    
    | @@ -7,7 +7,7 @@ require '../lib/gearman' | |
| 7 7 | 
             
            t = nil
         | 
| 8 8 | 
             
            threadcounter = 0
         | 
| 9 9 |  | 
| 10 | 
            -
            client = Gearman::Client.new('localhost | 
| 10 | 
            +
            client = Gearman::Client.new('localhost')
         | 
| 11 11 |  | 
| 12 12 |  | 
| 13 13 | 
             
            myid = threadcounter 
         | 
| @@ -22,6 +22,6 @@ taskset = Gearman::TaskSet.new(client) | |
| 22 22 | 
             
              puts "#{jid} #{data}"
         | 
| 23 23 |  | 
| 24 24 | 
             
              time = Time.now() + rand(120) + 10
         | 
| 25 | 
            -
               | 
| 25 | 
            +
              task.schedule(time)
         | 
| 26 26 | 
             
              taskset.add_task(task)
         | 
| 27 27 | 
             
            end
         | 
| @@ -3,18 +3,25 @@ require '../lib/gearman' | |
| 3 3 |  | 
| 4 4 | 
             
            # String reverse worker 
         | 
| 5 5 |  | 
| 6 | 
            -
            servers = ['localhost: | 
| 6 | 
            +
            servers = ['localhost:4730']
         | 
| 7 7 |  | 
| 8 | 
            +
            t = nil
         | 
| 8 9 | 
             
            jobnum = 0
         | 
| 9 10 |  | 
| 10 | 
            -
             | 
| 11 | 
            -
             | 
| 12 | 
            -
             | 
| 13 | 
            -
             | 
| 14 | 
            -
             | 
| 15 | 
            -
             | 
| 16 | 
            -
             | 
| 11 | 
            +
            (0..1).each do 
         | 
| 12 | 
            +
              t = Thread.new {
         | 
| 13 | 
            +
                w = Gearman::Worker.new(servers)
         | 
| 14 | 
            +
                w.add_ability('reverse_string') do |data,job|
         | 
| 15 | 
            +
                  result = data.reverse
         | 
| 16 | 
            +
                  puts "Job: #{job.inspect} Data: #{data.inspect} Reverse: #{result} "
         | 
| 17 | 
            +
                  puts "Completed job ##{jobnum}"
         | 
| 18 | 
            +
                  jobnum += 1
         | 
| 19 | 
            +
                  result
         | 
| 20 | 
            +
                end
         | 
| 21 | 
            +
                loop { w.work }
         | 
| 22 | 
            +
              }
         | 
| 17 23 | 
             
            end
         | 
| 18 | 
            -
            loop { w.work }
         | 
| 19 24 |  | 
| 25 | 
            +
            puts "Waiting for threads..."
         | 
| 26 | 
            +
            t.join
         | 
| 20 27 |  | 
    
        data/lib/gearman/worker.rb
    CHANGED
    
    | @@ -248,6 +248,20 @@ class Worker | |
| 248 248 | 
             
                @sockets.values.each {|s| announce_ability(s, func, timeout) }
         | 
| 249 249 | 
             
              end
         | 
| 250 250 |  | 
| 251 | 
            +
             | 
| 252 | 
            +
              ##
         | 
| 253 | 
            +
              # Add an after-ability hook
         | 
| 254 | 
            +
              #
         | 
| 255 | 
            +
              # The passed-in block of code will be executed after the work block for 
         | 
| 256 | 
            +
              # jobs with the same function name. It takes two arguments, the result of
         | 
| 257 | 
            +
              # the work and the original job data. This way, if you need to hook into 
         | 
| 258 | 
            +
              # *after* the job_complete packet is sent to the server, you can do so. 
         | 
| 259 | 
            +
              #
         | 
| 260 | 
            +
              # N.B The after-ability hook ONLY runs if the ability was successful and no 
         | 
| 261 | 
            +
              # exceptions were raised.
         | 
| 262 | 
            +
              #
         | 
| 263 | 
            +
              # @param func     function name (without prefix)
         | 
| 264 | 
            +
              #
         | 
| 251 265 | 
             
              def after_ability(func, &f)
         | 
| 252 266 | 
             
                @after_abilities[func] = Ability.new(f)
         | 
| 253 267 | 
             
              end
         | 
| @@ -291,6 +305,7 @@ class Worker | |
| 291 305 | 
             
                  ret = ability.run(data, Job.new(sock, handle))
         | 
| 292 306 | 
             
                rescue Exception => e
         | 
| 293 307 | 
             
                  exception = e
         | 
| 308 | 
            +
                  Util.logger.debug "GearmanRuby: Exception: #{e}\n#{e.backtrace.join("\n")}\n"
         | 
| 294 309 | 
             
                end
         | 
| 295 310 |  | 
| 296 311 | 
             
                cmd = if ret && exception.nil?
         | 
| @@ -316,6 +331,7 @@ class Worker | |
| 316 331 | 
             
                    begin
         | 
| 317 332 | 
             
                      after_ability.run(ret, data)
         | 
| 318 333 | 
             
                    rescue Exception => e
         | 
| 334 | 
            +
                      Util.logger.debug "GearmanRuby: Exception: #{e}\n#{e.backtrace.join("\n")}\n"
         | 
| 319 335 | 
             
                      nil
         | 
| 320 336 | 
             
                    end
         | 
| 321 337 | 
             
                  end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,13 +1,13 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification 
         | 
| 2 2 | 
             
            name: gearman-ruby
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version 
         | 
| 4 | 
            -
              hash:  | 
| 4 | 
            +
              hash: 1
         | 
| 5 5 | 
             
              prerelease: false
         | 
| 6 6 | 
             
              segments: 
         | 
| 7 7 | 
             
              - 3
         | 
| 8 8 | 
             
              - 0
         | 
| 9 | 
            -
              -  | 
| 10 | 
            -
              version: 3.0. | 
| 9 | 
            +
              - 3
         | 
| 10 | 
            +
              version: 3.0.3
         | 
| 11 11 | 
             
            platform: ruby
         | 
| 12 12 | 
             
            authors: 
         | 
| 13 13 | 
             
            - John Ewart
         | 
| @@ -22,12 +22,12 @@ autorequire: | |
| 22 22 | 
             
            bindir: bin
         | 
| 23 23 | 
             
            cert_chain: []
         | 
| 24 24 |  | 
| 25 | 
            -
            date: 2010- | 
| 25 | 
            +
            date: 2010-11-12 00:00:00 -08:00
         | 
| 26 26 | 
             
            default_executable: 
         | 
| 27 27 | 
             
            dependencies: []
         | 
| 28 28 |  | 
| 29 29 | 
             
            description: Library for the Gearman distributed job system
         | 
| 30 | 
            -
            email:  | 
| 30 | 
            +
            email: gearman.ruby@librelist.com
         | 
| 31 31 | 
             
            executables: []
         | 
| 32 32 |  | 
| 33 33 | 
             
            extensions: []
         | 
| @@ -77,9 +77,8 @@ files: | |
| 77 77 | 
             
            - test/mock_worker_test.rb
         | 
| 78 78 | 
             
            - test/util_test.rb
         | 
| 79 79 | 
             
            - test/worker_test.rb
         | 
| 80 | 
            -
            - examples/bgclient.rb
         | 
| 81 80 | 
             
            has_rdoc: true
         | 
| 82 | 
            -
            homepage: http://github.com/ | 
| 81 | 
            +
            homepage: http://github.com/gearman-ruby/gearman-ruby
         | 
| 83 82 | 
             
            licenses: []
         | 
| 84 83 |  | 
| 85 84 | 
             
            post_install_message: 
         | 
| @@ -118,7 +117,6 @@ test_files: | |
| 118 117 | 
             
            - test/mock_worker_test.rb
         | 
| 119 118 | 
             
            - test/util_test.rb
         | 
| 120 119 | 
             
            - test/worker_test.rb
         | 
| 121 | 
            -
            - examples/bgclient.rb
         | 
| 122 120 | 
             
            - examples/calculus_client.rb
         | 
| 123 121 | 
             
            - examples/calculus_worker.rb
         | 
| 124 122 | 
             
            - examples/client.rb
         | 
    
        data/examples/bgclient.rb
    DELETED
    
    | @@ -1,19 +0,0 @@ | |
| 1 | 
            -
            require 'rubygems'
         | 
| 2 | 
            -
            #require 'gearman'
         | 
| 3 | 
            -
            require '../lib/gearman'
         | 
| 4 | 
            -
            require 'json'
         | 
| 5 | 
            -
             | 
| 6 | 
            -
            servers = ['localhost:4731']
         | 
| 7 | 
            -
              
         | 
| 8 | 
            -
            client = Gearman::Client.new(servers)
         | 
| 9 | 
            -
            taskset = Gearman::TaskSet.new(client)
         | 
| 10 | 
            -
            function = "reverse_string"
         | 
| 11 | 
            -
            struct_data = {
         | 
| 12 | 
            -
              :site_id => 45,
         | 
| 13 | 
            -
              :domain => 'www.google.com'
         | 
| 14 | 
            -
            }
         | 
| 15 | 
            -
            #data = JSON.generate(struct_data)
         | 
| 16 | 
            -
            data = "testing"
         | 
| 17 | 
            -
            task = Gearman::BackgroundTask.new(function, data)
         | 
| 18 | 
            -
            taskset.add_task(task)
         | 
| 19 | 
            -
             |