Skip to content

Dashforge is JoobQ Server Web Interface that allows you o monitor job queues processing, job latency, and errors in a beautiful LIVE components interface

License

Notifications You must be signed in to change notification settings

azutoolkit/dashforge

Repository files navigation

Contributors Forks Stargazers Issues MIT License


Logo

Dashforge

A real-time Dashboard UI to monitor jobs for the background job processing library JoobQ
Explore the docs »

View Demo · Report Bug · Request Feature

About The Project

DashForge Screen Shot

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)

(back to top)

Installation

Fly.io Deployment

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

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

Worker Nodes

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

Docker

To build the Dockerfile in the root directory

docker build .

Docker Compose

docker-compose up

Roadmap

  • Pagination of jobs
  • Better Job Details

See the open issues for a full list of proposed features (and known issues).

(back to top)

Contributing

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!

  1. Fork it (https://github.com/your-github-user/dashforge/fork)
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

(back to top)

Contributors

About

Dashforge is JoobQ Server Web Interface that allows you o monitor job queues processing, job latency, and errors in a beautiful LIVE components interface

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published