def addOccurrenceNotificationsTask(dbi, prevVersion): """ Add OccurrenceNotificationsTask to scheduler and remove old RoomReservationTask """ scheduler_client = Client() scheduler_module = scheduler_client._schedMod old_tasks = [] for _, task in scheduler_module.getWaitingQueue(): if getattr(task, 'typeId', None) in {'RoomReservationTask', 'RoomReservationEndTask'}: old_tasks.append(task) for task in scheduler_module._runningList: if getattr(task, 'typeId', None) in {'RoomReservationTask', 'RoomReservationEndTask'}: old_tasks.append(task) for finished_task in scheduler_module._finishedIndex.values(): task = finished_task._task if hasattr(finished_task, '_task') else finished_task if getattr(task, 'typeId', None) in {'RoomReservationTask', 'RoomReservationEndTask'}: scheduler_module._finishedIndex.unindex_obj(finished_task) for failed_task in scheduler_module._failedIndex.values(): task = failed_task._task if hasattr(failed_task, '_task') else failed_task if getattr(task, 'typeId', None) in {'RoomReservationTask', 'RoomReservationEndTask'}: scheduler_module._failedIndex.unindex_obj(failed_task) for task in old_tasks: scheduler_client.dequeue(task) scheduler_client.enqueue(OccurrenceNotifications(rrule.HOURLY, byminute=0, bysecond=0)) dbi.commit()
def addSuggestionsTask(dbi, withRBDB, prevVersion): """Add Category Suggestion Task to scheduler (Redis needed)""" if not Config.getInstance().getRedisConnectionURL(): print console.colored(" Redis not configured, skipping", 'yellow') return task = CategorySuggestionTask(rrule.DAILY) client = Client() client.enqueue(task) dbi.commit()
def register(interval=15): from indico.modules.scheduler import Client from dateutil.rrule import MINUTELY from indico.core.db import DBMgr DBMgr.getInstance().startRequest() task = OutlookUpdateCalendarNotificationTask(MINUTELY, interval=interval) client = Client() client.enqueue(task) DBMgr.getInstance().endRequest()
def register(interval=15): from indico.modules.scheduler import Client from dateutil.rrule import MINUTELY from MaKaC.common import DBMgr DBMgr.getInstance().startRequest() task = OutlookUpdateCalendarNotificationTask(MINUTELY, interval=interval) client = Client() client.enqueue(task) DBMgr.getInstance().endRequest()
def _run(self, args): if args.action == 'add_task': c = Client() task = LiveSyncUpdateTask(MINUTELY, interval=args.interval) c.enqueue(task) self._dbi.commit() elif args.action == 'export': self._export(args) self._dbi.abort() elif args.action == 'simulate': self._simulate(args) self._dbi.abort()
def taskMigration(dbi, withRBDB, prevVersion): """ Migrating database tasks from the old format to the new one """ c = Client() for t in HelperTaskList().getTaskListInstance().getTasks(): for obj in t.listObj.values(): print console.colored(" * %s" % obj.__class__.__name__, 'blue') if obj.__class__.__name__ == 'OfflineWebsiteCreator': continue if obj.__class__.__name__ == 'FoundationSync': c.enqueue( FoundationSyncTask(rrule.DAILY, byhour=0, byminute=0)) elif obj.__class__.__name__ == 'StatisticsUpdater': c.enqueue(CategoryStatisticsUpdaterTask( CategoryManager().getById('0'), rrule.DAILY, byhour=0, byminute=0)) elif obj.__class__.__name__ == 'sendMail': # they have to be somewhere in the conference alarm = t.conf.alarmList[t.id] c.enqueue(alarm) else: print console.colored("WARNING: Unknown task type!", 'yellow') if withRBDB: DALManager.commit() dbi.commit()
def taskMigration(dbi, withRBDB, prevVersion): """ Migrating database tasks from the old format to the new one """ c = Client() for t in HelperTaskList().getTaskListInstance().getTasks(): for obj in t.listObj.values(): print console.colored(" * %s" % obj.__class__.__name__, 'blue') if obj.__class__.__name__ == 'FoundationSync': c.enqueue( FoundationSyncTask(rrule.DAILY, byhour=0, byminute=0)) elif obj.__class__.__name__ == 'StatisticsUpdater': c.enqueue(CategoryStatisticsUpdaterTask( CategoryManager().getById('0'), rrule.DAILY, byhour=0, byminute=0)) elif obj.__class__.__name__ == 'sendMail': # they have to be somewhere in the conference alarm = t.conf.alarmList[t.id] c.enqueue(alarm) else: raise Exception("Unknown task type!") if withRBDB: DALManager.commit() dbi.commit()
from indico.modules.scheduler import Client from dateutil import rrule from indico.core.db import DBMgr from indicoaffiliation.tasks.ecosoc import ECOSOCListTask dbi = DBMgr.getInstance() c = Client() pt = ECOSOCListTask(rrule.HOURLY) c.enqueue(pt) dbi.commit()
def run(self): DBMgr.getInstance().startRequest() c = Client() c.enqueue(self._task_t(self._id, self._time, **self._extra_args)) DBMgr.getInstance().endRequest()