Project

cyclop

0.0
Repository is archived
No commit activity in last 3 years
No release in over 3 years
Job queue with MongoDB with emphasis on never losing any task even if worker fails hard (segfault).
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 0.8.7
~> 0.7
~> 2.6.0

Runtime

~> 1.3
~> 1.3
~> 0.3.6
 Project Readme

Cyclop

Job queue with MongoDB with emphasis on never losing any task even if worker fails hard (segfault).

Dependencies

  • Ruby >= 1.9.2
  • gem "mongo", "~> 1.3.1"
  • gem "posix-spawn", "~> 0.3.6"

Usage

  • Give Cyclop access to mongo:

      Cyclop.db = Mongo::Connection.new["database_name"]
    

    or with Replica-Sets

      Cyclop.db = Mongo::ReplSetConnection.new["database_name"]
    

    or if you're using MongoMapper:

      Cyclop.db = MongoMapper.database
    

    or if you're using Mongoid:

      Cyclop.db = Mongoid.database
    
  • Queue a new task:

      Cyclop.push({
        queue: :upload,
        job_params: {
          url: "http://example.com",
        },
      })
    
  • Queue a new task to process in 5 minutes, to retry 3 times in case of error with a 1 minute delay between each:

      Cyclop.push({
        queue: :convert,
        job_params: {
          tmp_file: "/tmp/uploaded_file_32.png",
        },
        delay: 300,
        retries: 3,
        splay: 60,
      })
    
  • Get next job:

      Cyclop.next
    
  • Get next job on specific queues:

      Cyclop.next :upload, :convert
    
  • Get next job on specific queues for a specific host:

      Cyclop.next :upload, :convert, host: "tartarus.local"
    
  • Get failed jobs (limit to 30):

      Cyclop.failed limit: 30
    
  • Get failed jobs (skip first 10, limit to 30):

      Cyclop.failed skip: 10, limit: 30
    
  • Requeue a failed job:

      job = Cyclop.failed.first
      job.requeue
    
  • Start a worker:

      cyclop -c config.yml
    
  • To get help about the format for config.yml

      cyclop -h
    

Build Status

Build Status

License

cyclop is Copyright © 2011 TalentBox SA. It is free software, and may be redistributed under the terms specified in the LICENSE file.