Crystal Quartz Panel is a lightweight, completely pluggable module for displaying Quartz.NET scheduler jobs information. This module can be embedded into an existing Web Forms or MVC application by referencing libs and adding a number of rows to a web.config file.
#Features#
- simple and lightweight, could be embedded into existing application;
- displays basic scheduling information:
- scheduler state and properties;
- triggers by jobs and groups;
- job properties (
JobDataMap
);
- ability to perform simple action:
- pause/resume triggers jobs and groups;
- start/shutdown a scheduler;
- execute a job on demand ("Trigger Now").
- easy integration with a remote scheduler (see examples);
#Getting started#
CrystalQuartzPanel is implemented as an http module that embeds to an existing web-application. Configuration options depends of a kind of used scheduler.
If Quartz Scheduler works in the app domain of your web application:
- Install CrystalQuartz.Simple NuGet package.
Install-Package CrystalQuartz.Simple
- Customize
SimpleSchedulerProvider
class that has been added by NuGet package
public class SimpleSchedulerProvider : StdSchedulerProvider
{
protected override System.Collections.Specialized.NameValueCollection GetSchedulerProperties()
{
var properties = base.GetSchedulerProperties();
// Place custom properties creation here:
// properties.Add("test1", "test1value");
return properties;
}
protected override void InitScheduler(IScheduler scheduler)
{
// Put jobs creation code here
}
}
If Quartz Scheduler works in a separate application (remote scheduler):
- Install CrystalQuartz.Remote NoGet package.
Install-Package CrystalQuartz.Remote
- Customize url of the remote scheduler in web config file:
<crystalQuartz>
<provider>
<add property="Type"
value="CrystalQuartz.Core.SchedulerProviders.RemoteSchedulerProvider, CrystalQuartz.Core" />
<add property="SchedulerHost"
value="tcp://localhost:555/QuartzScheduler" /> <!-- Customize URL here -->
</provider>
</crystalQuartz>
Checkout a working sample of remote scheduler integration: https://github.com/guryanovev/CrystalQuartz/tree/master/examples/RemoteScheduler
#Custom styles#
It is possible to apply some custom css to CrystalQuartz UI. To do so you need:
- create a css file somewhere in your web application;
- add a reference to this css file in CrystalQuartz config:
<sectionGroup name="crystalQuartz" type="CrystalQuartz.Web.Configuration.CrystalQuartzConfigurationGroup">
<section
name="provider"
type="CrystalQuartz.Web.Configuration.ProviderSectionHandler"
requirePermission="false"
allowDefinition="Everywhere" />
<!-- options section is required -->
<section
name="options"
type="CrystalQuartz.Web.Configuration.CrystalQuartzOptionsSection"
requirePermission="false"
allowDefinition="Everywhere" />
</sectionGroup>
<!-- ... -->
<crystalQuartz>
<!-- ... -->
<options
customCssUrl="CUSTOM_CSS_URL">
</options>
</crystalQuartz>
See custom styles example for details.
#Collaboration#
Please use gitter to ask questions. Fill free to report issues and open pull requests.
#Changelog#
- March, 2015
- web part completely rewritten as Single Page Application;
- migrated to the latest Quartz.NET version.
- Junuary, 2016
- ability to set custom styles.