Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Quartz Web Dashboard #251

Open
lahma opened this issue Mar 31, 2015 · 20 comments
Open

Quartz Web Dashboard #251

lahma opened this issue Mar 31, 2015 · 20 comments

Comments

@lahma
Copy link
Member

lahma commented Mar 31, 2015

There should be an embedded view which allows to see what's happening inside a process that hosts Quartz. Some initial thoughts:

  • works as a plugin that can be attached to Quartz setup, not required by default
  • uses Owin self hosting
  • SignalR/WebSockets for live logs
  • REST like API for basic scheduler tasks, "remoting V2"
  • minimal set of required libraries, but Owing+SignalR+WebAPI most likely will bloat a bit
  • SPA application based on Aurelia
  • basic managements tasks like triggering job available
  • investigate support to create persisted job execution history, backed by database
  • later possibility to get a "cluster view" that contains consolidated view from all registered scheduler processes
@lahma lahma added this to the 3.0 milestone Mar 31, 2015
@jvilalta
Copy link
Contributor

Marko,
I think all of the above are necessary

I'd like to suggest also:

  • the ability to add multiple schedulers so that you can easily switch between schedulers.
  • some sort of authentication/authorization mechanism

The QuartzNetFeaturePack has a plugin that uses owin (nancy but that's because back then webapi didn't run outside of iis) and has a very simple api started. I just started yesterday on moving the front end to Aurelia, so I'm good with that as well.

Let me know how I can help. Happy to move that into the main project or keep it separate for now.

J

@mgonzales3
Copy link

Marko,

what about a conmaker included

@lpunderscore
Copy link

REST like API for basic scheduler tasks, "remoting V2"

Very much this, except replace basic with complete.

@Jawvig
Copy link

Jawvig commented Apr 1, 2015

At the moment we've got a (far too basic) version of this embedded in our already existing admin app. I'd love to shift to a community supported version, but not too keen on standing up a separate admin app. As long as the data that it displays can be easily retrieved from a new REST API then I'd have the option of either using an out of the box UI or continuing to maintain a UI integrated with our existing app but sourcing the data from a REST API. The remoting API is a slightly hard to work with, especially when the scheduler is down.

In terms of features, supporting multiple schedulers would be good for us too. My plan had been to merge the data from both schedulers into a single view with an indication of which scheduler a job was running in.

Finally, I did write an Entity Framework 6 based persisted job execution history that I'd be happy to contribute. It's implemented as an IJobListener. It does have a slight dependency on Autofac at the minute just to get easy lifetime management (via the Owned concept) but this could be removed. Let me know if you're interested enough for me to package it up a bit to share it out.

@vgl
Copy link

vgl commented Sep 16, 2015

Hi, where I can find a road map for 3.0 version, and when it will be available. Because right now I'm doing same - implementing web ui to handle quartz tasks...

@vgl
Copy link

vgl commented Sep 16, 2015

Any dates for 3.0 version?

@lahma
Copy link
Member Author

lahma commented Sep 20, 2015

The current road map is roughly the issues listed in the tracker:

https://github.com/quartznet/quartznet/milestones/3.0

Some issues should then opened for discussion, just like this web dashboard one where we can discuss the individual requirements.

There's no date for 3.0, just the famous "it's done when it's done". As there is no dedicated personnel in this project it's all about finding the free time to spare. So unfortunately I can't give estimates because we'd be probably failing them...

@vgl
Copy link

vgl commented Sep 21, 2015

Does bootstrap v3 used on fronted side?

@vgl
Copy link

vgl commented Sep 21, 2015

What about security layer for the dashboard and api controllers? Does it implemented or it just in plans for now?

@lahma
Copy link
Member Author

lahma commented Oct 18, 2015

Yes, the UI is based on bootstrap at the moment. A security layer probably should be implemented too.

lahma added a commit that referenced this issue Apr 24, 2016
@lahma lahma removed this from the 3.0 milestone Dec 30, 2017
@lahma
Copy link
Member Author

lahma commented Dec 30, 2017

I'm dropping this from 3.0 to deliver the basic functionality of the core at least. Haven't had the required time for this undertaking.

@Pinox
Copy link

Pinox commented Mar 13, 2018

Hi @lahma ,

Just want to know if the dashboard is still on the radar screen. Been using qrtz with asp.net core but dashboard would be seriously useful. Something like https://github.com/HangfireIO/Hangfire

It's open source and something similiar in qrtz would be great, i don't think anyone needs to reinvent the wheel here.

@lahma
Copy link
Member Author

lahma commented Mar 13, 2018

@Pinox I would love such a feature too. Contributions are more than welcome to get things rolling - PRs targeting the web project adding functionality etc.

@pierluca
Copy link

pierluca commented Aug 7, 2018

As I was looking for this feature, I found my needs to be mostly covered by https://github.com/guryanovev/CrystalQuartz

@Pinox
Copy link

Pinox commented Aug 7, 2018

@pierluca thanks bud, I did not know this.

@jlucansky
Copy link

Hi, I recently published new alternative web UI. You can manage jobs, triggers, calendars and most of the API which IScheduler provide. It is pluggable into existing OWIN and ASP.NET Core application or it creates embedded web server on it own. You can put strongly typed values to JobDataMap or edit existing JobDataMap of job or trigger. List and histograms for recently executed jobs is also included.

https://github.com/jlucansky/Quartzmin

@lahma
Copy link
Member Author

lahma commented Jan 8, 2019

I'd like to ask both @jlucansky and @guryanovev for an opinion. Would it make sense to develop shared JSON API on Quartz's side (see API related requirements in issue description) and then adapt both of your UI parts to share?

I know that you both have put hard work into your management UIs and they probably are opionated and follow the requirements you have set for them, both possible having pros and cons. So my guess is that there's neither an easy merge of UI solutions nor much requirement to do so (unless you see the benefit).

Easily accessible REST'ish API would allow users to define Yet Another UI / console application / integration they need, also covering .NET Core which now has none from Quartz's side. I already had some effort on building one but now that there are three competing solutions for the same goal of having HTTP exposed management methods it feels a bit silly.

@jlucansky
Copy link

I created Quartzmin with no intention to be used as the universal REST API so it is not as clean and straightforward as it should be. But, as part for my another work project, I was forced to replace .NET remoting with web API and I crafted pretty complete API for IScheduler. Right now, it targets only full .NET Framework but it can be used as starting point or inspiration: https://gist.github.com/jlucansky/1c5b8e4befa3b745b4485184811caa2f

There is also working client side if you are interested...

@CTBSTerry
Copy link

I am completely new to using Quartz.net but I am trying to figure out whether it will work for our needs. I also need it to be a WebAPI basis and what you show looks very close to my needs. Question, are you running the Quartz instance on the same machine as the WebAPI or using a Windows service to do that task?

@kosperera
Copy link

Just thot of bringing this conversation to live. I've been using Quartz for some time now and having a Dashboard is a great deal.

I came across Hangfire and Coravel while roaming in GitHub.

I'm not a fan of Hangfire's programming model, especially their DI wiring, and the use of schedules, tasks, queues, triggers et al is a bit wonky.

On the other hand, Coravel programming model is quite promising as they try to design the APIs Fluently and use .NET native APIs such as IHostedService but not quite sure whether they use PeriodicTimer, however, their Dashboard is only for Pro users and their latest release is nearly 2yo.

Sadly, both @jlucansky/Quartzmin and @guryanovev/CrystalQuartz have no activity for nearly a half-a-decade (4-5y) and .NET has changed a lot thus far.

/cc @lahma, @Jawvig

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests