So führen Sie Quartz.net vom Windows -Service aus, ohne zu schließenC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 So führen Sie Quartz.net vom Windows -Service aus, ohne zu schließen

Post by Anonymous »

quartz.net läuft aus einem Windows -Dienst und startet und schaltet sofort ab.

Code: Select all

 ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[]
{
new MyWindowsService()
};
ServiveBase.Run(ServicesToRun)

using System.ServiceProcess;
using System.Threading.Tasks;

public class MyWindowsService : ServiceBase
{
private IScheduler _scheduler;

protected override void OnStart(string[] args)
{
Task.Run(() => StartScheduler());
}

private void StartScheduler()
{
ISchedulerFactory schedulerFactory = new StdSchedulerFactory();
_scheduler = schedulerFactory.GetScheduler().GetAwaiter().GetResult();
_scheduler.Start().GetAwaiter().GetResult();
}

protected override void OnStop()
{
_scheduler.Shutdown().GetAwaiter().GetResult();
}
}
< /code>
Ich habe verschiedene Dinge ausprobiert, aber ich kann den IScheduler nicht am Leben erhalten.2025-06-02 09:24:55,889 [5] : Using object serializer: Quartz.Simpl.JsonObjectSerializer, Quartz.Serialization.Json
2025-06-02 09:24:55,921 [5] : TaskSchedulingThreadPool configured with max concurrency of 10 and TaskScheduler ThreadPoolTaskScheduler.
2025-06-02 09:24:55,937 [5] : Initialized Scheduler Signaller of type: Quartz.Core.SchedulerSignalerImpl
2025-06-02 09:24:55,937 [5] : Quartz Scheduler created
2025-06-02 09:24:55,952 [5] : Registering Quartz Job Initialization Plug-in.
2025-06-02 09:24:55,968 [5] : Scheduler QuartzScheduler_$_NON_CLUSTERED shutting down.
2025-06-02 09:24:55,968 [5] : Scheduler QuartzScheduler_$_NON_CLUSTERED paused.
2025-06-02 09:24:55,983 [5] : Shutting down threadpool...
2025-06-02 09:24:55,983 [5] : Shutdown of threadpool complete.
2025-06-02 09:24:55,983 [5] : Scheduler QuartzScheduler_$_NON_CLUSTERED Shutdown complete.
< /code>
Um die XML -Datei mit Job und Auslöser zu verwenden, tun Sie dies: < /p>
ISchedulerFactory schedFact = new StdSchedulerFactory(props);
< /code>
wobei Requisiten eine NameValue -Sammlung sind und so aussieht: < /p>
NameValueCollection props = new NameValueCollection
{
{ "quartz.scheduler.instanceName", "MyScheduler" },
{ "quartz.threadPool.type", "Quartz.Simpl.SimpleThreadPool" },
{ "quartz.threadPool.threadCount", "5" },
{ "quartz.jobStore.type", "Quartz.Simpl.RAMJobStore" },
{ "quartz.plugin.jobInitializer.fileNames", "quartz_jobs.xml"},
};
< /code>
Hier ist die XML -Eingabe von Jobs und Trigger (quartz_jobs.xml) sieht < /p>
aus


true




SampleJob
SampleGroup
Example job for Quartz.NET
MyNamespace.SampleJob, MyAssembly
true
false


key1
value1






SampleCronTrigger
SampleCronGroup
Cron trigger for SampleJob
SampleJob
SampleGroup
SmartPolicy
0/10 * * * * ?




Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post