resque

package module
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 6, 2018 License: MIT Imports: 3 Imported by: 30

README

go-resque

Simple Resque queue client for Go.

Installation

Installation is simple and familiar for Go programmers:

go get github.com/kavu/go-resque

Usage

Let's assume that you have such Resque Job (taken from Resque examples):

module Demo
  class Job
    def self.perform(params)
      puts "Processed a job!"
    end
  end
end

So, we can enqueue this job from Go.

package main

import (
  "github.com/kavu/go-resque" // Import this package
  _ "github.com/kavu/go-resque/godis" // Use godis driver
  "github.com/simonz05/godis/redis" // Redis client from godis package
)

func main() {
  var err error

  client := redis.New("tcp:127.0.0.1:6379", 0, "") // Create new Redis client to use for enqueuing
  enqueuer := resque.NewRedisEnqueuer("godis", client) // Create enqueuer instance

  // Enqueue the job into the "go" queue with appropriate client
  _, err = enqueuer.Enqueue("resque:queue:go", "Demo::Job")
  if err != nil {
    panic(err)
  }

  // Enqueue into the "default" queue with passing one parameter to the Demo::Job.perform
  _, err = enqueuer.Enqueue("resque:queue:default", "Demo::Job", 1)
  if err != nil {
    panic(err)
  }

  // Enqueue into the "extra" queue with passing multiple
  // parameters to the Demo::Job.perform so it will fail
  _, err = enqueuer.Enqueue("resque:queue:extra", "Demo::Job", 1, 2, "woot")
  if err != nil {
    panic(err)
  }

}

Simple enough? I hope so.

Contributing

Just open pull request or ping me directly on e-mail, if you want to discuss some ideas.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Register

func Register(name string, driver driver.Enqueuer)

Types

type MockRedisDriver

type MockRedisDriver struct {
	driver.Enqueuer
}

type RedisEnqueuer

type RedisEnqueuer struct {
	// contains filtered or unexported fields
}

func NewRedisEnqueuer

func NewRedisEnqueuer(drvName string, client interface{}, nameSpace string) *RedisEnqueuer

func (*RedisEnqueuer) Enqueue

func (enqueuer *RedisEnqueuer) Enqueue(queue, jobClass string, args ...jobArg) (int64, error)

func (*RedisEnqueuer) EnqueueIn

func (enqueuer *RedisEnqueuer) EnqueueIn(delay time.Duration, queue, jobClass string, args ...jobArg) (bool, error)

EnqueueIn enque a job at a duration

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL