A real-time Dashboard UI to monitor jobs for the background
job processing library JoobQ
Explore the docs »
View Demo
·
Report Bug
·
Request Feature
Many types of applications require background tasks that run independently of the user interface (UI). Examples include batch jobs, intensive processing tasks, and long-running processes such as workflows. Background jobs can be executed without requiring user interaction--the application can start the job and then continue to process interactive requests from users. This can help to minimize the load on the application UI, which can improve availability and reduce interactive response times.
Dashforge Basic features include:
- Monitor current job processed (Total processed, completed, retried, dead)
- Job Queue Monitor (Jobs per Second, Total Errors, and Job Processing Latency)
To deploy to Fly.io use the fly.io directory toml
file and
customize it as per your application needs.
Then using the fly
command-line tool deploy your apps:
fly deploy -c ./fly.io/redis.toml
fly deploy -c ./fly.io/dashforge-worker.toml
fly deploy -c ./fly.io/dashforge.toml
Redis DB is where JoobQ stores and maintains the state of your Jobs as well as
create statistics using the Redis Timeseries module, and for this reason we recommend
deploy the time-series version of Redis which can be found at docker.io/redislabs/redistimeseries:latest
These worker nodes are your minions that process the Jobs, the more worker nodes the more throughput.
# Load JoobQ Shard
require "joobq"
# Only needed for the Scheduler below
require "../src/jobs/**"
# Configure JoobQ
JoobQ.configure do
queue "queue:Email", ENV["EMAIL_QUEUE_WORKERS"].not_nil!.to_i, EmailJob
queue "queue:Fail", ENV["FAIL_QUEUE_WORKERS"].not_nil!.to_i, FailJob
queue "queue:Test", ENV["TEST_QUEUE_WORKERS"].not_nil!.to_i, TestJob
# Define periodic schedule these Jobs will execute at an interval
scheduler do
cron "5 4 * * *" { TestJob.perform(1) }
delay TestJob.new(1), for: 1.minute
every 1.hour, EmailJob
end
end
# Starts processing the queue
JoobQ.forge
sleep
To build the Dockerfile
in the root directory
docker build .
docker-compose up
- Pagination of jobs
- Better Job Details
See the open issues for a full list of proposed features (and known issues).
Contributions are what the makes open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork it (https://github.com/your-github-user/dashforge/fork)
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request
- Elias J. Perez - creator and maintainer