Description
An Active Job compatible queueing interface. This library will allow you to
enqueue jobs on your existing Active Job compatible backend. This is particularly
useful if you're strangling your existing Rails project to death.
The intention is to fully support any and all backends that Active Job supports.
Pull requests are much appreciated.
ActiveJorb alternatives and similar packages
Based on the "Queue" category.
Alternatively, view ActiveJorb alternatives based on common mentions on social networks and blogs.
-
oban
๐ Robust job processing in Elixir, backed by modern PostgreSQL or SQLite3 -
broadway
Concurrent and multi-stage data ingestion and data processing with Elixir -
honeydew
Job Queue for Elixir. Clustered or Local. Straight BEAM. Optional Ecto. ๐ช๐ -
Rihanna
Rihanna is a high performance postgres-backed job queue for Elixir -
task_bunny
TaskBunny is a background processing application written in Elixir and uses RabbitMQ as a messaging backend -
kaffe
An opinionated Elixir wrapper around brod, the Erlang Kafka client, that supports encrypted connections to Heroku Kafka out of the box. -
opq
Elixir queue! A simple, in-memory queue with worker pooling and rate limiting in Elixir. -
hulaaki
DEPRECATED : An Elixir library (driver) for clients communicating with MQTT brokers(via the MQTT 3.1.1 protocol). -
conduit
A message queue framework, with support for middleware and multiple adapters. -
faktory_worker
Elixir Faktory worker https://hexdocs.pm/faktory_worker -
work_queue
Simple implementation of the hungry-consumer model in Elixir -
kafka_consumer
Consumer for Kafka using brod and elixir (production ready) -
adap
Create a data stream across your information systems to query, augment and transform data according to Elixir matching rules. -
exdisque
Elixir client for Disque (https://github.com/antirez/disque), an in-memory, distributed job queue. -
dbus
A dumb message bus for sharing data between microservices in a relatively decoupled mechanism
Collect and Analyze Billions of Data Points in Real Time
Do you think we are missing an alternative of ActiveJorb or a related project?
README
ActiveJorb 
An Active Job compatible queueing interface. This library will allow you to enqueue jobs on your existing Active Job compatible backend. This is particularly useful if you're strangling your existing Rails project to death.
The intention is to fully support any and all backends that Active Job supports. Pull requests are much appreciated.
Installation
def deps do
[
{:active_jorb, "~> 0.1.0"}
]
end
Supported Backends
Backend | Supported? | Add to mix.exs | Link |
---|---|---|---|
Sidekiq | Yes | {:sidewalk, "~> 0.3.4} |
https://hex.pm/packages/sidewalk |
Resque | No (#6) | ||
Que | No (#4) | ||
Queue Classic | No (#5) | ||
Backburner | No (#3) | ||
Sneakers | No (#7) |
Usage
After installing the dependency for your required backend, it's recommended that you proxy access to the supported queue adapter in your application:
# config/dev.exs
config :my_application, MyApplication,
job_queue_adapter: ActiveJorb.QueueAdapter.Sidekiq
# config/test.exs
config :my_application, MyApplication,
job_queue_adapter: ActiveJorb.QueueAdapter.Test
# lib/my_application/job_queue.ex
defmodule MyApplication.JobQueue do
@queue_adapter Application.get_env(:my_application, :job_queue_adapter)
defdelegate enqueue(job), to: @queue_adapter
defdelegate enqueue_at(job), to: @queue_adapter
end
To enqueue a job you must first construct an %ActiveJorb.Job{}
, and then pass
it to the enqueue method of choice:
iex> job = %ActiveJorb.Job{job_class: "MyJob", arguments: [1, 2, 3]}
iex> MyApplication.JobQueue.enqueue(job)
{:ok, "some-job-id"}
iex> ts = ~N[2019-01-01 12:30:00]
iex> MyApplication.JobQueue.enqueue_at(job, ts)
{:ok, "some-other-job-id"}
Testing
See ActiveJorb.QueueAdapters.Test
.
Prior Art, Credit, and Thanks
- All of the maintainers of Active Job
- The various authors of any supported backend
- The various authors of any Elixir library supporting those backends