Giter Club home page Giter Club logo

crystalquartz's Introduction

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

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

View Demo (serverless, Quartz.NET scheduler is emulated in the browser)

Features

  • simple and lightweight, could be embedded into existing application:
    • supports OWIN-based web or standalone applications;
    • supports non-OWIN web applications;
    • native support for ASP.NET Core (without OWIN).
  • displays basic scheduler information:
    • scheduler state and properties;
    • triggers by jobs and groups;
    • job properties (JobDataMap);
  • ability to perform basic scheduler actions:
    • pause/resume/delete triggers, jobs or groups;
    • start/shutdown/standby/resume a scheduler;
    • execute a job on demand ("Trigger Now");
    • add a trigger for jobs;
  • easy integration with a remote scheduler (see examples);
  • works with Quartz.NET v2 or v3.

Pre Requirements

  1. Quartz.NET v2 or v3 installed to project you want to use as a CrystalQuartz panel host.

    CrystalQuartz detects Quartz.dll version at runtime and does not explicitly depend on Quartz NuGet package. So you need to make sure you have Quartz pre-installed.

    For Quartz 3:

    Install-Package Quartz -Version 3.6.2

    For Quartz 2:

    Install-Package Quartz -Version 2.6.2
  2. Make sure you have appropriate target framework version

    Minimum Supported .NET versions (vary by packages)

    Quartz.NET Version CrystalQuartz Package .NET Framework 4.0 .NET Framework 4.5 .NET Framework 4.5.2 .NET Standard 2.0 .NET Core 2.0 .NET 5
    v3 CrystalQuartz.AspNetCore ✔️ ✔️ ✔️
    v3 CrystalQuartz.Owin ✔️ ✔️ ✔️ ✔️
    v3 CrystalQuartz.Owin ✔️ ✔️ ✔️ ✔️
    v3 CrystalQuartz.Simple ✔️ ✔️ ✔️ ✔️
    v3 CrystalQuartz.Remote ✔️ ✔️ ✔️ ✔️
    v2 CrystalQuartz.Owin ✔️ ✔️ ✔️ ✔️ ✔️
    v2 CrystalQuartz.Simple ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
    v2 CrystalQuartz.Remote ✔️ ✔️ ✔️ ✔️ ✔️ ✔️

Getting started

CrystalQuartzPanel is an embeddable module that can be plugged into an existing application. Getting started strategy depends on a type of environment you use.

Option 1: ASP.NET Core (recommended for modern .NET environments)

This option should work for any modern .NET 5/6/7 and .NET Core 2/3 applications as long as they use ASP.NET Core hosting environment.

  1. Install NuGet package

    Install-Package CrystalQuartz.AspNetCore -IncludePrerelease

  2. Once you have an ASP.NET Core-supported application (no matter if it's web or self hosted) you can activate CrystalQuartz panel:

    using CrystalQuartz.AspNetCore;
    // ...
    /*
     * app is IApplicationBuilder
     * scheduler is your IScheduler (local or remote) or Task<IScheduler>
     */
    app.UseCrystalQuartz(() => scheduler);
  3. Run your app and navigate to

    localhost:YOUR_PORT/quartz

Please check Getting Started with ASP.NET Core for more details.

Examples

Option 2: OWIN (legacy environments)

  1. Install NuGet package

    Install-Package CrystalQuartz.Owin -IncludePrerelease

  2. Once you have an OWIN-supporting application (no matter if it's web or self hosted) you can activate CrystalQuartz panel:

    using CrystalQuartz.Owin;
    // ...
    /*
     * app is IAppBuilder
     * scheduler is your IScheduler (local or remote)
     */
    app.UseCrystalQuartz(() => scheduler);
  3. Run your app and navigate to

    localhost:YOUR_PORT/quartz

Please check Getting Started with OWIN for more details.

Examples

Option 3: Non-OWIN (ancient legacy)

Non-owin CrystalQuartzPanel implemented as an http module. It can work in web-applications only and requires some configuration to be added to the web.config file. There are two NuGet packages aimed to help in case of non-owin application, the choice depends on the type of scheduler you use.

Option 2.1: If Quartz Scheduler works in the app domain of your web application:

  1. Install CrystalQuartz.Simple NuGet package.

    Install-Package CrystalQuartz.Simple -IncludePrerelease

  2. Customize SimpleSchedulerProvider class that has been added by NuGet package

    public class SimpleSchedulerProvider : ISchedulerProvider
    {
        public object CreateScheduler(ISchedulerEngine engine)
        {
            ISchedulerFactory schedulerFactory = new StdSchedulerFactory();
            var scheduler = GetScheduler(schedulerFactory.GetScheduler());
    
            /* ADD JOBS HERE */
      
            return scheduler;
        }
        //...
    }
  3. Run you application and go to YOUR_APP_URL/CrystalQuartzPanel.axd

Option 2.2: If Quartz Scheduler works in a separate application (remote scheduler):

  1. Install CrystalQuartz.Remote NuGet package.

    Install-Package CrystalQuartz.Remote -IncludePrerelease

  2. 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>
  3. Run you application and go to YOUR_APP_URL/CrystalQuartzPanel.axd

Examples

Advanced Configuration

CrystalQuartz supports some configuration options that could be passed to the panel at startup time to customize it's behavior.

For CrystalQuartz.Owin package pass options to UseCrystalQuartz method:

using CrystalQuartz.Application;

//...

app.UseCrystalQuartz(
    () => scheduler,
    new CrystalQuartzOptions
    {
        /* SET OPTIONS HERE */
    });

For CrystalQuartz.Simple and CrystalQuartz.Remote use the web.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>
  <!-- ... -->
  <!-- PLACE OPTIONS HERE -->
  <options
      customCssUrl="CUSTOM_CSS_URL">
  </options>
</crystalQuartz>

Advanced configuration topics:

List of available options:

Property Name XML Attribute Default
Path not supported 'quartz' Url part for the panel.
CustomCssUrl customCssUrl null Valid absolute or relative url for custom CSS styles for the panel. See custom styles example for details.
LazyInit not supported false A flag indicating whether CrystalQuartz Panel should be initialized immediately after application start (false) or after first call of panel services (true).
TimelineSpan not supported 1 hour Span of timeline events displayed by the panel.

Please note: The options list here is not complete, please check the options class source code 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:

  • NodeJs and npm should be installed on your machine and 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

Latest update:

  • timeline tooltip cosmetic fixes
  • introduced trigger fire details dialog (opens on timeline item click)

See full changelog

crystalquartz's People

Contributors

bryant1410 avatar duaneedwards avatar gitter-badger avatar guryanovev avatar jholt456 avatar jinweijie avatar serbrech avatar ubikuity avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

crystalquartz's Issues

CrystalQuartz-timeline missing files

Files are missing from the CrystalQuartz-timeline download, resulting in errors during build. Doesn't look like the dist folder was included, which based on your .gitignore, this may be intended:

CrystalQuartz.Application/Content/application.css
CrystalQuartz.Application/Content/application.js
CrystalQuartz.Application/Content/index.html
CrystalQuartz.Application/Content/loading.gif

Is there something I can do to fix this, or do I need to wait for you to add them?

Error reading resource 'CrystalQuartz.Web.Content.Scripts.application.js'

Severity Code Description Project File Line Suppression State
Error Error reading resource'CrystalQuartz.Web.Content.Scripts.application.js'-- 'Could not find file 'D:\TestProjects\CrystalQuartz\src\CrystalQuartz.Web\Content\Scriptsapplication.js'.' CrystalQuartz.Web D:\TestProjects\CrystalQuartz\src\CrystalQuartz.Web\CSC

Error communicating with remote scheduler.

I used it to connect on quartz.net V 3.0.4 in .net core but actually i faced issue while i try to connect using proxy it gave "Error communicating with remote scheduler."
the configration it is as below

key="quartz.scheduler.exporter.type" value="Quartz.Simpl.RemotingSchedulerExporter, Quartz" key="quartz.scheduler.exporter.port" value="555" key="quartz.scheduler.exporter.bindName" value="QuartzScheduler" key="quartz.scheduler.exporter.channelType" value="tcp" key="quartz.scheduler.exporter.channelName" value="httpQuartz" key="quartz.scheduler.instanceName" value="RemoteServerSchedulerClient" key="quartz.threadPool.type" value="Quartz.Simpl.SimpleThreadPool, Quartz" key="quartz.threadPool.threadCount" value="5" key="quartz.threadPool.threadPriority" value="Normal" key="quartz.scheduler.proxy" value="true" key="quartz.scheduler.proxy.address" value="tcp://127.0.0.1:555/QuartzScheduler" key="quartz.jobStore.type" value="Quartz.Impl.AdoJobStore.JobStoreTX, Quartz" key="quartz.jobStore.dataSource" value="myDS" key="quartz.jobStore.driverDelegateType" value="Quartz.Impl.AdoJobStore.SqlServerDelegate, Quartz" key="quartz.jobStore.lockHandler.type" value="Quartz.Impl.AdoJobStore.UpdateLockRowSemaphore, Quartz" key="quartz.jobStore.tablePrefix" value="QRTZ_" key="quartz.jobStore.clustered" value="false" key="quartz.dataSource.myDS.connectionString" value="Server=.;Database=QuartzDB;Persist Security Info=True;User ID=sa;Password=123;" key="quartz.dataSource.myDS.provider" value="SqlServer" key="quartz.jobStore.useProperties" value="true" key="quartz.serializer.type" value="json"

i think still it is not supported for .net core :(

Couldn't obtain triggers for job: The time zone ID '' was not found on the local computer

One or more errors occurred. (Couldn't obtain triggers for job: The time zone ID 'China Standard Time' was not found on the local computer.)
Couldn't obtain triggers for job: The time zone ID 'China Standard Time' was not found on the local computer.
The time zone ID 'China Standard Time' was not found on the local computer.
Could not find file '/usr/share/zoneinfo/China Standard Time'.

Remote scheduler already exists

Hi,

I am trying to use a MVC application with Crystal Quartz embedded to monitor a remote scheduler (Windows service). When I navigate to the Panel, the system tells me that the Scheduler already exists. Is navigating to the panel attempting to instantiate the scheduler server?

Any help would be appreciated.

ASP MVC or Core, how to create a new job

Hello, I can see the dashboard monitor, but how can we create a new job of a task?

For e.g. I registered a list of runnable tasks in a static class and and want to be able to create a schedule around it

Does CrystalQuartz support .net 4.6.1 ?

Hi,

Does CrystalQuartz support .net 4.6.1 ?
I saw the examples are all in 4.5.2 and when I switch the program type to 4.6.1, it did not work.

Regards,
Chenhao Gao

change the "Return to main page" url

is there any way to change the url of the "Return to main page" link? if not, it would be great if you could add an attribute to config to set that value.

Thanks!

CrystalQuartz not working when running as windows service

I have added crystal quartz in my quartz scheduler project to show the dashboard (check link). below code works fine when I am running the application as a console app. but it does not work when we deploy it as windows service on the same machine. it's not even throwing any exception nor any log in event logger.

IScheduler scheduler = SetupScheduler();
Action startup = app =>
{
app.UseCrystalQuartz(scheduler);
};

            Console.WriteLine("Starting self-hosted server...");
            using (WebApp.Start("http://localhost:9000/", startup))
            {
                Console.WriteLine("Server is started");
                Console.WriteLine();
                Console.WriteLine("Check http://localhost:9000/quartz to see jobs information");
                Console.WriteLine();

                Console.WriteLine("Starting scheduler...");
                scheduler.Start();

                Console.WriteLine("Scheduler is started");
                Console.WriteLine();
                Console.WriteLine("Press [ENTER] to close");     
                Console.ReadLine();     
            }

            Console.WriteLine("Shutting down...");
            scheduler.Shutdown(waitForJobsToComplete: true);
            Console.WriteLine("Scheduler has been stopped");

when we deploy the application as windows service I am getting below error while opening the link in the browser "This site can’t be reached". but its working fine when we run it as a console.

DateTime Format

Is there a way to change how times are displayed so that they show up in the server's local timezone instead of UTC?

Build Issue

I am getting an error when i run Build.bat
in step Transform intex.html template.

But i am able to successfully build and run the application.
Please let me know will this issue create any problem

[Transform intex.html template]
INFO Start external tool with command line:
C:\KVK\CrystalQuartz\src\packages\Mono.TextTransform.1.0.0\tools\TextTr
ansform.exe C:\KVK\CrystalQuartz\src\CrystalQuartz.Application\Content
index.tt
[Compile TypescriptFiles]
INFO Start external tool with command line:
tsc CrystalQuartz.Application\Client\Scripts\Application.ts -out Crysta
lQuartz.Application\Content\Scripts\application.js
[Generate common assembly info]
INFO Completed
[Compile TypescriptFiles]
ERROR The system cannot find the file specified
[Transform intex.html template]
INFO Completed

Press Enter to exit
ǃ숀뛛葐1䆰/

Server Restart Detected

For some reason we keep getting "Server Restart Detected" over and over again when the service does not actually restart. Does anyone know why this is happening? I am connected remotely.

It looks like my SIM number changes on each request.

Method 'TriggerFired' in type 'CrystalQuartz.Core.Quartz2.Quartz2SchedulerEventSource' from assembly 'CrystalQuartz.AspNetCore,

Unable to load one or more of the requested types.
Method 'TriggerFired' in type 'CrystalQuartz.Core.Quartz2.Quartz2SchedulerEventSource' from assembly 'CrystalQuartz.AspNetCore, Version=6.8.1.0, Culture=neutral, PublicKeyToken=null' does not have an implementation.

public static Type[] GetAllTypes(this AppDomain @this, bool fromCache = true)
    {
        if (fromCache && (typeCache == null || !typeCache.Any()) || !fromCache)
        {
            typeCache = @this.GetExcutingAssemblies()
                .SelectMany(x =>
                {
                    try
                    {
                        return x.DefinedTypes.Select(t => t.AsType()); // Throw System.Reflection.ReflectionTypeLoadException
					}
                    catch (ReflectionTypeLoadException ex)
                    {
                        return ex.Types.Where(t => t != null);
                    }
                }).ToArray();
        }

        return typeCache;
}

No "Next Fire Date" shown for triggers (CrystalQuartz.Owin 6.2.1-beta)

I am working on upgrading a CrystalQuartz app to latest Quartz 3.x (for async support) using the beta CrystalQuartz.Owin 6.2.1-beta nuget release. Upgrade was pretty painless and mostly everything seems to work, except in the CrystalQuartz UI no "Next Fire Date" is shown for triggers ("Start Date" and "Last Fire Date" both showing).

How to add multi job

I saw the demo 09_Quartz3_AspNetCore_Web just run one job .Now I want to run multi job. How to add .
I copy the job code .But it's not work. BTW. How to see the job log. If the job have some console worlds.

`
private static IScheduler CreateScheduler()
{
var schedulerFactory = new StdSchedulerFactory();
var scheduler = schedulerFactory.GetScheduler().Result;

        var job = JobBuilder.Create<PrintMessageJob>()
            .WithIdentity("localJob1", "default")
            .Build();

        var trigger = TriggerBuilder.Create()
            .WithIdentity("trigger1", "default")
            .ForJob(job)
            .StartNow()
            .WithCronSchedule("0 /1 * ? * *")
            .Build();
        scheduler.ScheduleJob(job, trigger);

        var job2 = JobBuilder.Create<PrintMessageJob>()
            .WithIdentity("localJob2", "default")
            .Build();

        var trigger2 = TriggerBuilder.Create()
            .WithIdentity("trigger2", "default")
            .ForJob(job)
            .StartNow()
            .WithCronSchedule("0 /1 * ? * *")
            .Build();

        scheduler.ScheduleJob(job2, trigger2);

        scheduler.Start();

        return scheduler;
    }

`

CrystalQuartz.Owin does not depends to Microsoft.Owin.Host.SystemWeb

ITNOA

Hi,

I think, it is good idea to depends CrystalQuartz.Owin depends to Microsoft.Owin.Host.SystemWeb, because when I install CrystalQuartz.Owin package, Microsoft.Owin.Host.SystemWeb package does not install and Startup does not call, so your instruction does not work.

thx

Styling Cystal Quartz Control Panel

I'd like to style the control panel page to brand it to fit in better with our project. I know I could download the source and update main.css and then recompile. However I'd like to be able to continue using the nuGet package so don't want to do this. Is there a supported way to style the control panel?

CrystalQuartzPanel.axd produces 404.

Hi,

I have an existing app using CrystalQuartz.Owin 4.0.0 that works fine. When I upgrade it to 6.x, I get a 404 error, when I click the CrystalQuartzPanel.axd link. I added a script map that points to type="CrystalQuartz.Web.PagesHandler, CrystalQuartz.Web". That did not work. I created a file script map that points to CrystalQuartz.Owin.dll and that does not work either. If I roll back to 4.0, everything works.

Thanks,

David

Scheduler pausing

"Simple Scheduler" pausing if panel closed. To resume necessary to reload the site in browser and start again. How to make it working all the time.

Unusable page when having 3K jobs

Hello,

the page simply won't load on my browser having 3K jobs in store.

I guess it is just rendering everything at once instead of using lazy-loading on the page.

Avoid dependency on scheduler jobs assemblies

Url: /CrystalQuartzPanel.axd?page=job&job=[JOB_REDACTED]&group=DEFAULT

Could not load file or assembly '[ASSEMBLY_REDACTED]' or one of its dependencies. The system cannot find the file specified.

screen shot 2015-02-19 at 11 17 28

We run CrystalQuartz as a separate lightweight console that connects to the Quartz.net scheduler via remoting. When trying to access the job details page - the request fails since there are no binaries deployed with the console project - it is completely separated from the project.

Could not initialize scheduler   The connection is not established, computer rejected the connection request 127.0.0.1:555

CrystalQuartz.Remote

Web.config

<configuration>
  <configSections>
    <sectionGroup name="crystalQuartz" type="CrystalQuartz.Web.Configuration.CrystalQuartzConfigurationGroup">
      <section name="provider" type="CrystalQuartz.Web.Configuration.ProviderSectionHandler" requirePermission="false" allowDefinition="Everywhere" />
    </sectionGroup>
  </configSections>
  <system.web>
    <compilation debug="true" targetFramework="4.5.2" />
    <httpRuntime targetFramework="4.5.2" />
    <pages>
      <namespaces>
        <add namespace="System.Web.Optimization" />
      </namespaces>
      <controls>
        <add assembly="Microsoft.AspNet.Web.Optimization.WebForms" namespace="Microsoft.AspNet.Web.Optimization.WebForms" tagPrefix="webopt" />
      </controls>
    </pages>
    <httpModules>
      <add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" />
    </httpModules>
    <httpHandlers>
      <add verb="*" path="CrystalQuartzPanel.axd" type="CrystalQuartz.Web.PagesHandler, CrystalQuartz.Web" validate="false" />
    </httpHandlers>
  </system.web>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed" />
        <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="WebGrease" culture="neutral" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="0.0.0.0-1.5.2.14234" newVersion="1.5.2.14234" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
  <system.codedom>
    <compilers>
      <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701" />
      <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+" />
    </compilers>
  </system.codedom>
  <system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <modules>
      <remove name="ApplicationInsightsWebTracking" />
      <add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" preCondition="managedHandler" />
    </modules>

    <handlers>
      <add name="CrystalQuartzPanel" verb="*" path="CrystalQuartzPanel.axd" type="CrystalQuartz.Web.PagesHandler, CrystalQuartz.Web" />
    </handlers>
  </system.webServer>
  <crystalQuartz>
    <provider>
      <add property="Type" value="CrystalQuartz.Core.SchedulerProviders.RemoteSchedulerProvider, CrystalQuartz.Core" />
      
      <add property="SchedulerHost" value="tcp://localhost:555/QuartzScheduler" />
    
    </provider>
  </crystalQuartz>
  <appSettings />
  <connectionStrings />
</configuration>

App.config for Quartz project

<configuration>
  <configSections>
    <section name="quartz" type="System.Configuration.NameValueSectionHandler, System, Version=1.0.5000.0,Culture=neutral, PublicKeyToken=b77a5c561934e089" />
    <section name="unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection, Microsoft.Practices.Unity.Configuration" />

    <sectionGroup name="common">
      <section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging" />
    </sectionGroup>

  </configSections>
  <unity configSource="Unity.config" />

  <quartz>
    <add key="quartz.plugin.triggHistory.type" value="Quartz.Plugin.History.LoggingJobHistoryPlugin" />
    <add key="quartz.plugin.jobInitializer.type" value="Quartz.Plugin.Xml.XMLSchedulingDataProcessorPlugin" />
    <add key="quartz.plugin.jobInitializer.fileNames" value="....._jobs.xml" />
    <add key="quartz.plugin.jobInitializer.failOnFileNotFound" value="true" />
    <add key="quartz.plugin.jobInitializer.scanInterval" value="120" />

    <add key="quartz.threadPool.type" value="Quartz.Simpl.SimpleThreadPool, Quartz" />
    <add key="quartz.threadPool.threadCount" value="10" />
    <add key="quartz.threadPool.threadPriority" value="Normal" />
    
    <add key="quartz.scheduler.exporter.type" value="Quartz.Simpl.RemotingSchedulerExporter, Quartz" />
    <add key="quartz.scheduler.exporter.port" value="555" />
    <add key="quartz.scheduler.exporter.bindName" value="QuartzScheduler" />
    <add key="quartz.scheduler.exporter.channelType" value="tcp" />
  </quartz>

  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
  </startup>
</configuration>

Interval incorrectly labeled

As part of a demo application, I have two jobs, each running once per second, and set up one second apart. The CrystalQuartz panel lists their intervals as being "2 minutes" instead of "2 seconds". That's the only issue I've seen so far. I'm using it in a remote scenario, talking to a scheduler running in a separate windows service on the same machine.

Quartz.NET 3.0 & async/await support

Hello,

I'd like to use CrystalQuartz within a project that relies on async/await functionality, however, it has come to my attention that Quartz.NET will only support this functionality starting on version 3.0.

Currently, there is already a beta available (https://github.com/quartznet/quartznet/releases/tag/v3.0.0-beta1) and even though it's not a final version I'd like to see a alpha/beta version of CrystalQuartz support for this.

Has the CrystalQuartz team started to develop something that could support this version of Quartz? In any case (yes or no) are there any plan currently to introduce this support and when that could be available even as a first draft?

I could be able to lend a hand at it (maybe a PR) but the truth is that I don't know the CrystalQuartz architecture nor how long it would take me to be able to do such PR.

This UI might be a make or break feature for the current project otherwise we would have to rely on some sort of console application instead of the UI.

Best Regards
Celso Santos

PS: Oh, also, merry Christmas :)

Does not work with Quratz 2.3.1

I upgrated Quartz to 2.3.1 and CrystalQuartz does not work now. Error:
Could not initialize scheduler
Error communicating with remote scheduler.
Requested Service not found

dotnet core: "One or more errors occurred. (Error communicating with remote scheduler)"

Hi Gury,
I have a problem with your demo project about dotnet core
I had remap the connection to quartz, so without using the CreateScheduler method but attaching to the CqSamples.Quartz3.SystemWeb.RemoteScheduler project because I need to try to simulate the connection to a windows service

When I test it, I catch the exception "One or more errors occurred. (Error communicating with remote scheduler"
Can you help me, please

Thanks in advance

"Execute Now" should ask for JobDataMap values

Hi, thank you for this very useful project. I would love to have a feature on Execute Now: the possibility to specify JobDataMap values when the job defines them.
This feature probably would be useful also on Add Trigger.
Thanks

Allow editing of triggers

It would be really useful to have the ability to change frequencies and times for particular jobs.
In our environment the jobs don't change often, but the scheduled times do need to be changed on a regular basis.

how to add multiple SchedulerHost in webconfig

 <add property="Type" value="CrystalQuartz.Core.SchedulerProviders.RemoteSchedulerProvider, CrystalQuartz.Core" />
<add property="SchedulerHost" value="tcp://localhost:555/TradePlatformInterfaceScheduler" />
 <add property="SchedulerHost" value="tcp://localhost2:555/TradePlatformInterfaceScheduler" />

The WebUI only see localhost:555/TradePlatformInterfaceScheduler ,but can not see
localhost2:555/TradePlatformInterfaceScheduler. so how i do set the property?

Responsive Problem

crystalquartz

i have some responsive problems with latest version.

my resolution is 1366 X 768.

Security

Hi. I use crystal quartz fo .net core.How i can protect "/quartz" route by admin password for example? For the usual api routes i use jwt token

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.