Added the ability to unschedule jobs to the scheduler
This commit is contained in:
@@ -60,7 +60,6 @@ register_multi_item_links(['queue_document_list'], [re_queue_multiple_document,
|
|||||||
register_links(['setup_queue_transformation_create', 'setup_queue_transformation_edit', 'setup_queue_transformation_delete', 'document_queue_disable', 'document_queue_enable', 'queue_document_list', 'node_active_list', 'setup_queue_transformation_list'], [queue_document_list, node_active_list], menu_name='secondary_menu')
|
register_links(['setup_queue_transformation_create', 'setup_queue_transformation_edit', 'setup_queue_transformation_delete', 'document_queue_disable', 'document_queue_enable', 'queue_document_list', 'node_active_list', 'setup_queue_transformation_list'], [queue_document_list, node_active_list], menu_name='secondary_menu')
|
||||||
register_links(['setup_queue_transformation_edit', 'setup_queue_transformation_delete', 'setup_queue_transformation_list', 'setup_queue_transformation_create'], [setup_queue_transformation_create], menu_name='sidebar')
|
register_links(['setup_queue_transformation_edit', 'setup_queue_transformation_delete', 'setup_queue_transformation_list', 'setup_queue_transformation_create'], [setup_queue_transformation_create], menu_name='sidebar')
|
||||||
|
|
||||||
|
|
||||||
register_tool(all_document_ocr_cleanup, namespace='ocr', title=_(u'OCR'))
|
register_tool(all_document_ocr_cleanup, namespace='ocr', title=_(u'OCR'))
|
||||||
|
|
||||||
#Menus
|
#Menus
|
||||||
@@ -83,4 +82,4 @@ def document_post_save(sender, instance, **kwargs):
|
|||||||
|
|
||||||
post_save.connect(document_post_save, sender=Document)
|
post_save.connect(document_post_save, sender=Document)
|
||||||
|
|
||||||
register_interval_job(task_process_document_queues, seconds=QUEUE_PROCESSING_INTERVAL)
|
register_interval_job('task_process_document_queues', _(u'Checks the OCR queue for pending documents.'), task_process_document_queues, seconds=QUEUE_PROCESSING_INTERVAL)
|
||||||
|
|||||||
@@ -1,12 +1,24 @@
|
|||||||
from scheduler import scheduler
|
from scheduler import scheduler
|
||||||
|
from scheduler.exceptions import AlreadyScheduled
|
||||||
|
|
||||||
registered_jobs = {}
|
registered_jobs = {}
|
||||||
|
|
||||||
|
|
||||||
def register_interval_job(func, weeks=0, days=0, hours=0, minutes=0,
|
def register_interval_job(name, title, func, weeks=0, days=0, hours=0, minutes=0,
|
||||||
seconds=0, start_date=None, args=None,
|
seconds=0, start_date=None, args=None,
|
||||||
kwargs=None, job_name=None, **options):
|
kwargs=None, job_name=None, **options):
|
||||||
|
|
||||||
scheduler.add_interval_job(func=func, weeks=weeks, days=days,
|
if name in registered_jobs:
|
||||||
|
raise AlreadyScheduled
|
||||||
|
|
||||||
|
job = scheduler.add_interval_job(func=func, weeks=weeks, days=days,
|
||||||
hours=hours, minutes=minutes, seconds=seconds,
|
hours=hours, minutes=minutes, seconds=seconds,
|
||||||
start_date=start_date, args=args, kwargs=kwargs)#, **options)
|
start_date=start_date, args=args, kwargs=kwargs, **options)
|
||||||
|
|
||||||
|
registered_jobs[name] = {'title': title, 'job': job}
|
||||||
|
|
||||||
|
|
||||||
|
def remove_job(name):
|
||||||
|
if name in registered_jobs:
|
||||||
|
scheduler.unschedule_job(registered_jobs[name]['job'])
|
||||||
|
|
||||||
|
|||||||
2
apps/scheduler/exceptions.py
Normal file
2
apps/scheduler/exceptions.py
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
class AlreadyScheduled(Exception):
|
||||||
|
pass
|
||||||
Reference in New Issue
Block a user