Giter Site home page Giter Site logo

jlucansky / quartzmin Goto Github PK

View Code? Open in Web Editor NEW
528.0 24.0 179.0 1.83 MB

Quartzmin is powerful, easy to use web management tool for Quartz.NET

License: MIT License

Dockerfile 0.15% C# 69.53% CSS 2.68% JavaScript 9.02% HTML 18.62%
quartz admin web ui dotnet core

quartzmin's People

Contributors

jlucansky avatar vmutyal 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

quartzmin's Issues

Reorder job data maps

Hi,

Is it possible to reorder the jobs data maps? There are instances where sometimes I want to reorder some user inputs based without having to delete some/most of them and then type in all the job data maps with my preferred order.

Support netcore 3.1

Dear friends:

     Do you have any plan to upgrade to netcore3.1,  currently netcore3.1 has been released for a long time.

Quartzmin in virtual directory

When I publish the web without virtual directory http://PUBLIC_IP it works great, but when I publish something like this http://PUBLIC_IP/manager, I got problems with css and javascript from Quartzmin library.

GET http://localhost:63803/Content/Lib/semantic-ui/semantic.min.css net::ERR_ABORTED 500 (Internal Server Error)
manager:21 GET http://localhost:63803/Content/Lib/semantic-ui/calendar.min.css net::ERR_ABORTED 500 (Internal Server Error)
manager:22 GET http://localhost:63803/Content/Fonts/Lato.css net::ERR_ABORTED 500 (Internal Server Error)
manager:23 GET http://localhost:63803/Content/Site.css net::ERR_ABORTED 500 (Internal Server Error)
manager:25 GET http://localhost:63803/Content/Lib/jquery-3.3.1.min.js net::ERR_ABORTED 500 (Internal Server Error)
manager:26 GET http://localhost:63803/Content/Lib/moment.min.js net::ERR_ABORTED 500 (Internal Server Error)

Problem with self host quartzmin url

If I put a new url for quartzmin in Scheduler factory properties, it doesnt work. Quartzmin always deploys in webapplication default url overriding it. And that way I cant for example access swagger for my endpoints routes.
I tried to do as you say. I tried to put the url in quartzsection "quartz.plugin.quartzmin.url", "http://localhost:5000". Im using .net core 2.2 btw.

Am I missing something?
Help is really appreciated!

date

I want to use the localtime, not the utc

Example for Asp.Net Core with own controllers

Hi,

I'm trying to use your tool in a project that also hosts some controllers, but I'm having no luck. I'm probably doing something wrong, but if you could give me a hint I'll be grateful.

I have an Asp.Net Core 2.1 web api project, that exposes a couple of controllers. This project also starts the scheduler, and should include your management tool. The problem is, when I add it, I just can see the initial page but nothing from your Content folder (styles, scripts...) is loaded. And besides that, navigation doesn't work either.

Thanks in advance

Edit: I'm looking for a similar way to deploy it than CrystalQuartz, that just adding app.UseCrystalQuartz(() => scheduler), it deploys the web in /quartz path

How to load the dashboard without adding any new job and trigger

Hi,

I want to load the dashboard without adding new job to the scheduler instance

When I try to add New Job it is not loading the class dropdown which is the job class that we define
Right now it works only when we add new job to the scheduler instance. Can you tell me how to load the dashboard without adding any new job and trigger

List of Jobs pending for the day

Hi , Is it possible to show the jobs pending (waiting state) for the day. Something similar to Control-M where job will be shown in Grey color , turning to Green or red after execution

Using Quartzmin in SPA

Hi,

I'm new to Quartzmin, does it support SPA applications? If so, is any samples available?

add App.Debug.config cause System.IO.FileLoadException

quartz implement in a C# console app。works fine untill i add config transform file to project.

now when i hit run to debug app, console output as follow.

“zdyl.messageScheduler.exe”(CLR v4.0.30319: zdyl.messageScheduler.exe): 已加载“D:\P-Playground\WebMVC\zdyl.messageScheduler\bin\Debug\Microsoft.Owin.StaticFiles.dll”。已跳过加载符号。模块进行了优化,并且调试器选项“仅我的代码”已启用。
“zdyl.messageScheduler.exe”(CLR v4.0.30319: zdyl.messageScheduler.exe): 已加载“D:\P-Playground\WebMVC\zdyl.messageScheduler\bin\Debug\Handlebars.dll”。已跳过加载符号。模块进行了优化,并且调试器选项“仅我的代码”已启用。
“zdyl.messageScheduler.exe”(CLR v4.0.30319: zdyl.messageScheduler.exe): 已加载“D:\P-Playground\WebMVC\zdyl.messageScheduler\bin\Debug\JsonSubTypes.dll”。已跳过加载符号。模块进行了优化,并且调试器选项“仅我的代码”已启用。
“zdyl.messageScheduler.exe”(CLR v4.0.30319: zdyl.messageScheduler.exe): 已加载“C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Runtime.Serialization\v4.0_4.0.0.0__b77a5c561934e089\System.Runtime.Serialization.dll”。已跳过加载符号。模块进行了优化,并且调试器选项“仅我的代码”已启用。
“zdyl.messageScheduler.exe”(CLR v4.0.30319: zdyl.messageScheduler.exe): 已加载“C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\SMDiagnostics\v4.0_4.0.0.0__b77a5c561934e089\SMDiagnostics.dll”。已跳过加载符号。模块进行了优化,并且调试器选项“仅我的代码”已启用。
引发的异常:“System.IO.FileLoadException”(位于 mscorlib.dll 中)
引发的异常:“System.NullReferenceException”(位于 mscorlib.dll 中)
“System.NullReferenceException”类型的异常在 mscorlib.dll 中发生,但未在用户代码中进行处理
未将对象引用设置到对象的实例。

“zdyl.messageScheduler.exe”(CLR v4.0.30319: zdyl.messageScheduler.exe): 已加载“C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\PrivateAssemblies\Runtime\Microsoft.VisualStudio.Debugger.Runtime.dll”。已跳过加载符号。模块进行了优化,并且调试器选项“仅我的代码”已启用。
程序“[15864] zdyl.messageScheduler.exe: 程序跟踪”已退出,返回值为 0 (0x0)。
程序“[15864] zdyl.messageScheduler.exe”已退出,返回值为 -1073741510 (0xc000013a)。
[11:36:49 INF] Removed 0 'complete' triggers.
[11:36:49 DBG] Prepared SQL: DELETE FROM QRTZ_FIRED_TRIGGERS WHERE SCHED_NAME = 'MassTransit-Scheduler'
[11:36:49 INF] Removed 0 stale fired job entries.
[11:36:49 DBG] Lock 'TRIGGER_ACCESS' returned by: 697bf713-3446-4b37-8401-da9114d3d0b7
[11:36:49 DBG] Scanning for misfires...
[11:36:49 DBG] Prepared SQL: SELECT COUNT(TRIGGER_NAME) FROM QRTZ_TRIGGERS WHERE SCHED_NAME = 'MassTransit-Scheduler' AND MISFIRE_INSTR <> -1 AND NEXT_FIRE_TIME < @nextFireTime AND TRIGGER_STATE = @state1
[11:36:49 DBG] Found 0 triggers that missed their scheduled fire-time.
[11:36:49 INF] Scheduler MassTransit-Scheduler_$_NON_CLUSTERED shutting down.
[11:36:49 INF] Scheduler MassTransit-Scheduler_$_NON_CLUSTERED paused.
[11:36:49 DBG] Shutting down threadpool...
[11:36:49 DBG] Shutdown of threadpool complete.

Timeout

This is how i execute my QuartzMin inside Docker (K8s)
`
var host = WebHost.CreateDefaultBuilder(args).Configure(app =>
{

            app.UseStaticFiles(); // For the wwwroot folder

            app.UseStaticFiles(new StaticFileOptions
            {
                FileProvider = new PhysicalFileProvider(
                    Path.Combine(Directory.GetCurrentDirectory(), "Content")),
                RequestPath = "/Content"
            });
            

            app.UseHttpsRedirection();
            app.UseQuartzmin(new QuartzminOptions() { Scheduler = scheduler, ProductName = "Splitit Quartz Monitor" });

        }).ConfigureServices(services => 
        {
            services.AddQuartzmin();

        })                        
        .Build();

        host.Start();

        while (!scheduler.IsShutdown)
            Thread.Sleep(250);`

But i often get timeouts when i have many jobs
How do i extend this?

https://quartz.sandbox.local/Jobs
HTTP ERROR 500

Persistent ExecutionHistoryStore.

Hi,

Currently there is only InProcExecutionHistoryStore.

  1. Do you have any plans to support persisting the history to database?

  2. If not, i would like to help with that, how can i contact you for consultation?

Thanks,
Moti

When to start supporting .Net Core 3.0

System.TypeLoadException:“Could not load type 'Microsoft.Extensions.DependencyInjection.MvcJsonMvcCoreBuilderExtensions' from assembly 'Microsoft.AspNetCore.Mvc.Formatters.Json, Version=3.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'.”

Can't not run on .net 5

When run on .net 5 then show this exception System.TypeLoadException: 'Could not load type 'Microsoft.Extensions.DependencyInjection.MvcJsonMvcCoreBuilderExtensions' from assembly 'Microsoft.AspNetCore.Mvc.Formatters.Json, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'.'

How to fix this problem?
Thanks

How to host Quartzmin on IIS?

Hi Guys,
I have used Quartzmin for my working and created a Windows Service.
Right now Quartzmin SelfHost is running on localhost:5000, which I provided in configuration key "quartz.plugin.quartzmin.url"
Now, I want to deploy this interface on IIS to make it publicly accessible. How can I do this?
Keeping in mind that I have Windows Service.

@jlucansky @vmutyal

Dependency injection on IJob

Can you possibly give an example of how to make use of IoC inside a job? eg passing dependency in the job constructor.

Cheers,
Tien

Method not found: 'Quartz.JobBuilder Quartz.JobBuilder.StoreDurably()'.

When using JobStore , trying to save job, i got
"Method not found: 'Quartz.JobBuilder Quartz.JobBuilder.StoreDurably()'."

FROM THE LOG FILE :

info: Microsoft.AspNetCore.Hosting.Internal.WebHost[1]
Request starting HTTP/1.1 POST https://localhost:5001/Jobs/Save?trigger=false multipart/form-data; boundary=----WebKitFormBoundaryzNR0XrA1PvpsbtGO 1501
info: Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker[3]
Route matched with {action = "Save", controller = "Jobs"}. Executing controller action with signature System.Threading.Tasks.Task1[Microsoft.AspNetCore.Mvc.IActionResult] Save(Quartzmin.Models.JobViewModel, Boolean) on controller Quartzmin.Controllers.JobsController (Quartzmin). info: Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker[1] Executing action method Quartzmin.Controllers.JobsController.Save (Quartzmin) - Validation state: Valid info: Microsoft.AspNetCore.Mvc.Formatters.Json.Internal.JsonResultExecutor[1] Executing JsonResult, writing value of type '<>f__AnonymousType71[[System.String, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]'.
info: Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker[2]
Executed action Quartzmin.Controllers.JobsController.Save (Quartzmin) in 33.3153ms
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[2]
Request finished in 41.0208ms 400 application/json; charset=utf-8

Thanks in advanced

Split Project in API and UI?

Hi!

Would you consider to split the project in two parts?
One which contains REST Controllers, and the other one with the View Components?
Would be great if i can use this in my SPA Application, whith my own Views...

br
Bernhard

How to Set VirtualPathRoot

Hello, this is so so great, wonderful job!
I'm trying to publish Quartzmin in VirtualPath Website By variable(VirtualPathRoot) .but it doesn't work ,it look like duplicate use VirtualPathRoot. my environment is asp.net mvc
i3
i4
i5

Not able to interrupt job

When we are trying to interrupt Quartz job it will not stopped and also multiple message windows visible
image

Job data map issue for

Job is codded as follows:

[PersistJobDataAfterExecution]
  [DisallowConcurrentExecution]

  public class HeartBeatJob : IJob
  {
    public int? LastCount { get; set; }
    public Task Execute(IJobExecutionContext context)
    {
      var lastRun = context.PreviousFireTimeUtc?.DateTime.ToString(CultureInfo.InvariantCulture) ?? string.Empty;
      if (!LastCount.HasValue)
      {
        LastCount = 1;
      }

      
      context.JobDetail.JobDataMap["LastCount"]=LastCount;
      Log.Information("HeartBeat. Previous run: {lastRun} UTC, LastCount: {LastCount}", lastRun,LastCount);
      LastCount++;
      return Task.CompletedTask;
    }
  }

When started - job increments LastCount between runs as expected
When job map is changed through trigger editing page, incrementing of LastCount does not work.

How to access panel remotely

Nice work guys!

How can I access the panel remotely in a local network? I did open the port 5000 on my firewall server but its still not working.
Also I tried to set the url configuration to http://*:5000 as I use to do with QuartzCrystal panel but still not work.

Thanks!

How to work with AdoJobStore?

Hi!
I added Quartzmin to my project, which using AdoJobStore. And I don't see this triggers. The Quartzmin may work with AdoJobStore?

Thanks!

Quartzmin history - Job and Trigger names

Hi! I'm using .net core 2.2. In my quartzmin history the job and the trigger names don't show the complete names though in the jobs and trigger sections they do.

What am i missing?

Support for HostBuilder (IHost)

Hello Jan,

Can we have support for HostBuilder?

I have requirement to launch Quartz dashboard in Azure webjob console application. Below is sample code:

  public static async Task Main()
  {
      var builder = new HostBuilder();
      builder.ConfigureWebJobs(
          b =>
          {
              b.AddAzureStorageCoreServices();
              b.AddServiceBus(
                  a =>
                  {
                      a.MaxConcurrentCalls = 1;
                  });
          });

      /*
      builder.UseQuartzmin(
              new QuartzminOptions
              {
                  Scheduler = StdSchedulerFactory
                      .GetDefaultScheduler()
                      .Result,
              });
      */

      builder.ConfigureServices((_, s) => { ConfigureQuartz(s); });

      var host = builder.Build();
      using (host)
      {
          await host.RunAsync(token);
      }

 static void ConfigureQuartz(IServiceCollection services)
  {
      services.AddQuartz(
          q =>
          {
              // Use a Scoped container to create jobs. I'll touch on this later
              q.UseMicrosoftDependencyInjectionJobFactory();
          });

      services.AddQuartzHostedService(
          q => q.WaitForJobsToComplete = true);

      // services.AddQuartzmin();
  }

Cannot load MvcJsonMvcCoreBuilderExtensions' from assembly 'Microsoft.AspNetCore.Mvc.Formatters.Json, Version=6.0.0.0

Hi,

We have recently updated from .Net Core 2.2 to .Net Core 6.0 and we are getting the error below.
We were using "Quartz" Version="3.0.7". We have tried also updating to "Quartz" Version="3.5.0" but that did not fix the issue.
Does anyone know if there is a fix for this?
Thank you!

System.TypeLoadException: 'Could not load type 'Microsoft.Extensions.DependencyInjection.MvcJsonMvcCoreBuilderExtensions' from assembly 'Microsoft.AspNetCore.Mvc.Formatters.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'.'

Stack Trace:
at Quartzmin.ApplicationBuilderExtensions.AddQuartzmin(IServiceCollection services)
at Microsoft.AspNetCore.Hosting.WebHostBuilder.<>c__DisplayClass10_0.b__0(WebHostBuilderContext _, IServiceCollection services)
at Microsoft.AspNetCore.Hosting.WebHostBuilder.BuildCommonServices(AggregateException& hostingStartupErrors)
at Microsoft.AspNetCore.Hosting.WebHostBuilder.Build()
at Quartzmin.SelfHost.QuartzminPlugin.d__23.MoveNext()
at Quartz.Core.QuartzScheduler.d__174.MoveNext()
at Quartz.Core.QuartzScheduler.d__68.MoveNext()

Incorrect Date on Cron Display

I have the following CRON:

0 0 * ? * 2,5 *

The correct output is: "At second :00 of minute :00 of every hour, on every Monday and Thursday, every month"

However quartzmin displays this as "ever hour only on Tuesday and Friday"

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.