guryanovev / crystalquartz Goto Github PK
View Code? Open in Web Editor NEWpluggable UI for Quartz.NET
License: MIT License
pluggable UI for Quartz.NET
License: MIT License
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
Hi,
I love the CrystalQuartz, but I'd like to integrate it into SPA, do you have any plans to support it?
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
Pause All jobs and Pause all trigger works fine on the other hand.
"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.
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.
It would be great if we could include this in our dotnet core applications. Is this something you would be interested in?
https://icanhasdot.net/result?github=guryanovev~2FCrystalQuartz
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 :(
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 :)
Steps to reproduce:
Failure point: update data queries go one just after another without any delay.
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?
Need some help in getting the web demo to work. Using VS 2013 web express.
Is there a way to change how times are displayed so that they show up in the server's local timezone instead of UTC?
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=\"Web\" /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>
It is not working in this example: https://github.com/guryanovev/CrystalQuartz/tree/master/examples/05_SystemWeb_Remote
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'.
want to add new job from web, and the server can schedule it to execute.
Also it can modify trigger properties(eg. interval time)
<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?
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
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
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.
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.
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.
Good morning. Where is a way to start a jobs directly with an url?
I mean something like this
http://192.168.1.202:9100/quartz?Jobs=Jobs1
or any other way to force start jobs from another application?
thanks
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).
Its possible create a Remote Listner for several TCP ports?
can you help me?
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;
}
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.
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
Trigger fire info dialog stays open and forever in "In progress" state if the server has been restarted while the dialog is visible.
Any update on the RemoteSchedulerHost issue in NET .Core version?
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
ITNOA
Hi , I think it is good idea to upgrade quartz to 2.5.0
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.
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
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!
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;
}
`
Is there any way to control access the UI page ? for example name/password or http basic authentication ?
Thank you !
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
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䆰/
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.
the status of my jobs do not show in the right side.
Do I need to config something on somewhere?
images
quartz on the servers.
crystalquartz on my computer (localhost)
thank you for any help.
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
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?
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.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.