Skip to content

Gropher/tasque

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tasque

ActiveRecord based task queue. Task processing queue with states, history and priorities. Works with your favorite database.

Installation

Add this line to your application's Gemfile:

gem 'tasque'

And then execute:

$ bundle

Or install it manually:

$ gem install tasque

Then you need to generate initializer and migration:

$ rails g tasque:install

Don't forget to run migrations:

$ rake db:migrate

Usage

Create a simple task:

Tasque::Task.create! task: 'test', params: { text: 'This is the test!' }

Or a task with priority:

Tasque::Task.create! task: 'test', priority: 9000, params: { text: 'I will be processed first!!!' }

Or add a tag to find this task easily:

Tasque::Task.create! task: 'test', tag: 'user_123', params: { text: 'This task is property of User #123!' }

Now to process the task:

# create task processor
processor = Tasque::Processor.new

# register a handler for test tasks
processor.add_handler('test') do |task|
  puts "Got task ##{task.id}. Task says: '#{task.params['text']}'"
  task.complete!
  { log: 'got task, printed text' } # returning task result
end

# start processor and wait
processor.start

Using with Insque

Tasque can send task and worker state updates via Insque.

To enable this featute uncomment following lines in your tasque initializer:

# Send task state updates and progress notifications via Insque
config.notify = true

# Send worker heartbeat via Insque
config.heartbeat = true
config.heartbeat_interval = 10 # seconds

# Use RedisMutex instead of database transaction 
config.use_mutex = true

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Added some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

About

ActiveRecord based task queue

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published