Changes between Initial Version and Version 1 of QuartzScheduler


Ignore:
Timestamp:
Apr 27, 2012, 12:39:47 AM (12 years ago)
Author:
jesseeichar
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • QuartzScheduler

    v1 v1  
     1= Quartz Scheduler  =
     2
     3|| '''Date''' || 2012/04/27 ||
     4|| '''Contact(s)''' || [http://wiki.osgeo.org/wiki/User:Jeichar Jesse Eichar] ||
     5|| '''Last edited''' || ||
     6|| '''Status''' || committed ||
     7|| '''Assigned to release''' || 2.8 ||
     8|| '''Resources''' || R&D Camptocamp ||
     9|| '''Code''' || https://github.com/jesseeichar/geonetwork/tree/monitoring ||
     10|| '''Ticket''' || #876 ||
     11
     12== Overview ==
     13
     14Replace the custom code for scheduling tasks, Lucene and harvesting to use the Quartz framework.
     15
     16=== Proposal Type ===
     17 * '''Type''': Modification
     18 * '''App''': !GeoNetwork
     19 * '''Module''':
     20
     21=== Links ===
     22 
     23 * '''Email discussions''':
     24 * '''IRC discussions''':
     25 
     26=== Voting History ===
     27
     28 * None as yet
     29
     30----
     31
     32== Motivations ==
     33
     34Geonetwork uses custom code for scheduling harvesting tasks as well as for 'Schedule' tasks.  I have experienced very difficult to debug cases where tasks are not executed correctly.  In addition the Quartz framework has many more features and allows more advanced scheduling features like cron style scheduling, thread pooling, multiple schedules for a single task.  Listeners for notification when tasks are executed.  There are also options for distribution of tasks which could be useful when clustering Geonetwork.
     35
     36Right now there are 3 different implementations and all have fairly limited functionality. 
     37
     38== Proposal ==
     39
     40The existing API will be unchanged for Schedule, Lucene and Harvesters, only the implementation will change.
     41
     42Components of interest:
     43 
     44 * web/src/main/webapp/WEB-INF/classes/quartz.properties
     45  * properties for the default scheduler.  This scheduler will be used if the tasks specific scheduler configurations do not exist
     46 * web/src/main/webapp/WEB-INF/classes/quartz-scheduleManager.properties.disabled
     47  * if the .disabled is removed then the scheduleManager will have a dedicated scheduler configured with the configuration in this file.  Otherwise the default scheduler will be used
     48 * web/src/main/webapp/WEB-INF/classes/quartz-luceneOptimize.properties.disabled
     49  * if the .disabled is removed then the LuceneOptimization tasks will have a dedicated scheduler configured with the configuration in this file.  Otherwise the default scheduler will be used
     50 * web/src/main/webapp/WEB-INF/classes/quartz-abstractHarvester.properties
     51  * The Harvester scheduler configuration file.  If this file is deleted or renamed harvesting will use the default scheduler
     52
     53=== Backwards Compatibility Issues ===
     54
     55No compatibility issues
     56
     57== Risks ==
     58
     59Nothing notable
     60
     61== Participants ==
     62 * As above