static void Main(string[] args) { ISchedulerFactory schedFact = new StdSchedulerFactory(); ISchedulerListener schedListener = new SchedulerListener(); _scheduler = schedFact.GetScheduler(); _scheduler.ListenerManager.AddSchedulerListener(schedListener); _scheduler.Start(); UpdateJobs(); string option = ""; do { Console.WriteLine("Menu"); Console.WriteLine("1 - Update Jobs"); option = Console.ReadLine(); switch (option) { case "1": UpdateJobs(); break; } }while (true); Console.ReadLine(); }
/** * Notifies every registered listener that a task execution has failed due * to an uncaught exception. * * @param executor * The task executor. * @param exception * The exception. */ internal void notifyTaskFailed(TaskExecutor executor, ThrowableException exception) { if (executor == null) { throw new ArgumentNullException("executor", "executor is null."); } if (exception == null) { throw new ArgumentNullException("exception", "exception is null."); } lock (listeners) { int size = listeners.Count; if (size > 0) { for (int i = 0; i < size; i++) { SchedulerListener l = (SchedulerListener)listeners[i]; l.TaskFailed(executor, exception); } } else { // Logs on console if no one has been notified about it. Console.WriteLine(exception.ToString()); } } }
/** * Removes a {@link SchedulerListener} previously registered with the * {@link Scheduler#addSchedulerListener(SchedulerListener)} method. * * @param listener * The listener. */ public void removeSchedulerListener(SchedulerListener listener) { lock (listeners) { listeners.Remove(listener); } }
/** * Adds a {@link SchedulerListener} to the scheduler. A * {@link SchedulerListener} is notified every time a task is launching, has * succeeded or has failed. * * @param listener * The listener. */ public void addSchedulerListener(SchedulerListener listener) { lock (listeners) { listeners.Add(listener); } }
/** * Notifies every registered listener that a task execution has successfully * completed. * * @param executor * The task executor. */ internal void notifyTaskSucceeded(TaskExecutor executor) { if (executor == null) { throw new ArgumentNullException("executor", "executor is null."); } lock (listeners) { int size = listeners.Count; for (int i = 0; i < size; i++) { SchedulerListener l = (SchedulerListener)listeners[i]; l.TaskSucceeded(executor); } } }
public QuartzService(JobListener jobListener, SchedulerListener schedulerListener, ILogger <QuartzService> logger) { // var properties = new NameValueCollection(); // properties[StdSchedulerFactory.PropertySchedulerInstanceName] = "gogogo"; // properties[StdSchedulerFactory.PropertySchedulerInstanceId] = "AUTO"; // properties[StdSchedulerFactory.PropertyJobStoreType] = typeof (MongoDbJobStore).AssemblyQualifiedName; //// I treat the database in the connection string as the one you want to connect to // properties[$"{StdSchedulerFactory.PropertyJobStorePrefix}.{StdSchedulerFactory.PropertyDataSourceConnectionString}"] = "mongodb://localhost/quartz"; //// The prefix is optional // properties[$"{StdSchedulerFactory.PropertyJobStorePrefix}.collectionPrefix"] = "prefix"; // var scheduler = new StdSchedulerFactory(properties); var schedulerFactory = new StdSchedulerFactory(QuartzConfig()); //var schedulerFactory = new StdSchedulerFactory(QuartzConfig()); _scheduler = schedulerFactory.GetScheduler().Result; _scheduler.ListenerManager.AddJobListener(jobListener, GroupMatcher <JobKey> .AnyGroup()); _scheduler.ListenerManager.AddSchedulerListener(schedulerListener); _logger = logger; }