adam-zhu-1991 / CrystalQuartz

a lightweight, completely pluggable module for displaying Quartz.NET scheduler jobs information

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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.

Build Status Join the chat at https://gitter.im/guryanovev/CrystalQuartz

#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:

  1. Install CrystalQuartz.Simple NuGet package.

Install-Package CrystalQuartz.Simple

  1. 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):

  1. Install CrystalQuartz.Remote NoGet package.

Install-Package CrystalQuartz.Remote

  1. 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:

  1. create a css file somewhere in your web application;
  2. 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.

#Building from source#

Please use Build.bat script to build the project locally. Rebuilding directly from Visual Studio would not work correctly because some client-side assets should be regenerated. Build.bat is a bootstrapper for Rosalia build tool. Prerquirements:

  • Typescript should be installed on your machine and tsc command should be globally available

Once the build completes successfully, you can Run the VS project as usually.

#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.

About

a lightweight, completely pluggable module for displaying Quartz.NET scheduler jobs information


Languages

Language:C# 45.5%Language:JavaScript 21.3%Language:TypeScript 16.8%Language:HTML 7.9%Language:CSS 6.5%Language:Pascal 1.2%Language:Batchfile 0.5%Language:ASP 0.3%