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();
    }
Example #2
0
        /**
         * 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());
                }
            }
        }
Example #3
0
 /**
  * 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);
     }
 }
Example #4
0
 /**
  * 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);
     }
 }
Example #5
0
        /**
         * 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);
                }
            }
        }
Example #6
0
        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;
        }
Example #7
0
 /**
  * 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);
     }
 }
Example #8
0
 /**
  * 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);
     }
 }