Skip to content

cjbottaro/faktory_worker_ex

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

94 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Faktory Worker Ex

Elixir worker for Faktory (blog) (github).

Installation

The package can be installed by adding faktory_worker_ex to your list of dependencies in mix.exs:

def deps do
  [
    {:faktory_worker_ex, "~> 0.0"}
  ]
end

Quickstart

# For enqueuing jobs
defmodule MyFaktoryClient do
  use Faktory.Client, otp_app: :my_cool_app
end

# For processing jobs
defmodule MyFaktoryWorker do
  use Faktory.Worker, otp_app: :my_cool_app
end

# You must add them to your app's supervision tree
defmodule MyCoolApp.Application do
  use Application

  def start(_type, _args) do
    children = [MyFaktoryClient, MyFaktoryWorker]
    Supervisor.start_link(children, strategy: :one_for_one)
  end
end

defmodule MyGreeterJob do
  use Faktory.Job

  def perform(greeting, name) do
    IO.puts("#{greeting}, #{name}!!")
  end
end

# List argument must match the arity of MyGreeterJob.perform
MyGreeterJob.perform_async(["Hello", "Genevieve"])

Starting the worker

mix faktory

You should see logging output and the above job being processed.

mix faktory -h

To see command line options that can override in-app configuration.

iex -S mix faktory

If you want to debug your jobs using IEx.pry.

Configuration

Compile-time config is done with Mix.Config.

Run-time config is done with environment variables and/or an init/1 callback.

See documentation on:

Running a Faktory server

To run this readme's example, you need to run a Faktory server.

Easiest way is with Docker:

docker run --rm -p 7419:7419 -p 7420:7420 contribsys/faktory:latest -b :7419 -w :7420

You should be able to go to http://localhost:7420 and see the web ui.

Features

  • Middleware
  • Connection pooling (for clients)
  • Support for multiple Faktory servers
  • Faktory server authentication and TLS support
  • Comprehensive documentation
  • Comprehensive supervision tree
  • Decent integration tests

Missing features

  • Responding to quiet and terminate
  • Running without mix (e.g. a Distillery release)

Issues / Questions

https://github.com/cjbottaro/faktory_worker_ex/issues

About

Elixir worker for Faktory

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages