barbeque 0.2.0 → 0.2.1
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 +4 -4
- data/README.md +3 -3
- data/app/models/barbeque/job_definition.rb +10 -3
- data/lib/barbeque/version.rb +1 -1
- metadata +3 -3
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: a43082ae404cbe883e4ba07cbd59e6704c928ab3
         | 
| 4 | 
            +
              data.tar.gz: a2f5fabeb566ac7c2345c5b77f7e4093d43243f9
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: cb8b997431c6661bd6c5fd03dfcc17a1c86146b8e88db452aa43b1d668ea1473375c6dd42ce6c54057c965cc6a6fab7181818e01a9aab337f6acf1cee2149e5d
         | 
| 7 | 
            +
              data.tar.gz: 833426bd91b0901351f491b4962ebc7f15460cb181b66f2d9242358279e9ae288a49a13563c96a4d705ffffe512c26d7bfa5268072717b977fc7af90053f62f6
         | 
    
        data/README.md
    CHANGED
    
    | @@ -8,7 +8,7 @@ Job queue system to run job with Docker | |
| 8 8 | 
             
            ## Project Status
         | 
| 9 9 |  | 
| 10 10 | 
             
            Barbeque is under development but already used on production at Cookpad.  
         | 
| 11 | 
            -
            Documentation  | 
| 11 | 
            +
            Documentation is work in progress.
         | 
| 12 12 |  | 
| 13 13 | 
             
            ## What's Barbeque?
         | 
| 14 14 |  | 
| @@ -24,8 +24,8 @@ In Barbeque worker, they are done on Docker container. | |
| 24 24 |  | 
| 25 25 | 
             
            ## Why Barbeque?
         | 
| 26 26 |  | 
| 27 | 
            -
            - You can achieve job-level auto scaling using tools like [Amazon ECS](https://aws.amazon.com/ecs/)  | 
| 28 | 
            -
              -  | 
| 27 | 
            +
            - You can achieve job-level auto scaling using tools like [Amazon ECS](https://aws.amazon.com/ecs/) [EC2 Auto Scaling group](https://aws.amazon.com/autoscaling/)
         | 
| 28 | 
            +
              - For Amazon ECS, Barbeque has Hako runner
         | 
| 29 29 | 
             
            - You don't have to manage infrastructure for each application like Resque or Sidekiq
         | 
| 30 30 |  | 
| 31 31 | 
             
            For details, see [Scalable Job Queue System Built with Docker // Speaker Deck](https://speakerdeck.com/k0kubun/scalable-job-queue-system-built-with-docker).
         | 
| @@ -15,12 +15,19 @@ class Barbeque::JobDefinition < Barbeque::ApplicationRecord | |
| 15 15 | 
             
              DATE_HOUR_SQL = 'date_format(created_at, "%Y-%m-%d %H:00:00")'
         | 
| 16 16 |  | 
| 17 17 | 
             
              def execution_stats(from, to)
         | 
| 18 | 
            -
                 | 
| 19 | 
            -
             | 
| 20 | 
            -
             | 
| 18 | 
            +
                from = from.beginning_of_hour
         | 
| 19 | 
            +
                to = to.beginning_of_hour
         | 
| 20 | 
            +
                stats = Hash.new { |h, k| h[k] = { count: 0, avg_time: 0 } }
         | 
| 21 | 
            +
                job_executions.where(created_at: from .. to).group(DATE_HOUR_SQL).order(DATE_HOUR_SQL).pluck("#{DATE_HOUR_SQL}, count(1), avg(timestampdiff(second, created_at, finished_at))").each do |date_hour, count, avg_time|
         | 
| 22 | 
            +
                  time = Time.zone.parse("#{date_hour} UTC")
         | 
| 23 | 
            +
                  stats[time] = {
         | 
| 21 24 | 
             
                    count: count,
         | 
| 22 25 | 
             
                    avg_time: avg_time,
         | 
| 23 26 | 
             
                  }
         | 
| 24 27 | 
             
                end
         | 
| 28 | 
            +
                (from.to_i ... to.to_i).step(1.hour).map do |t|
         | 
| 29 | 
            +
                  time = Time.at(t)
         | 
| 30 | 
            +
                  stats[time].merge(date_hour: time)
         | 
| 31 | 
            +
                end
         | 
| 25 32 | 
             
              end
         | 
| 26 33 | 
             
            end
         | 
    
        data/lib/barbeque/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: barbeque
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.2. | 
| 4 | 
            +
              version: 0.2.1
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Takashi Kokubun
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2017-01- | 
| 11 | 
            +
            date: 2017-01-31 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: adminlte2-rails
         | 
| @@ -387,7 +387,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 387 387 | 
             
                  version: '0'
         | 
| 388 388 | 
             
            requirements: []
         | 
| 389 389 | 
             
            rubyforge_project: 
         | 
| 390 | 
            -
            rubygems_version: 2. | 
| 390 | 
            +
            rubygems_version: 2.6.8
         | 
| 391 391 | 
             
            signing_key: 
         | 
| 392 392 | 
             
            specification_version: 4
         | 
| 393 393 | 
             
            summary: Job queue system to run job with Docker
         |