def start_forced_fap(fap): SchedulerState.clear_user_app_queue() SchedulerState.set_app_started_at() name = fap['name'] params = fap['params'] app = { 'name': name, 'username': '******', 'userid': '>>>>FORCED<<<<', 'params': fap['params'], 'task_id': start_forced_fap.request.id, 'last_alive': time.time(), 'started_at': datetime.datetime.utcnow().isoformat(), 'is_default': False, 'is_forced': True, 'expire_at': str(datetime.datetime.utcnow() + datetime.timedelta(weeks=52)) } SchedulerState.set_current_app(app) SchedulerState.set_event_lock(False) fap = globals()[name](app['username'], app['userid']) try: fap.run(params=params) return True finally: fap.close() redis.set(SchedulerState.KEY_FORCED_APP, 'False') SchedulerState.set_current_app({})
def start_default_fap(app): SchedulerState.set_app_started_at() # app['expire_at'] = str( # datetime.datetime.utcnow()) if 'params' not in app: app['params'] = {} app['expire_at'] = str(datetime.datetime.utcnow() + datetime.timedelta(seconds=app['expires'])) params = app['default_params'].copy() params.update(app['params']) app['task_id'] = start_default_fap.request.id app['is_default'] = True app['is_forced'] = False app['last_alive'] = time.time() app['username'] = '******' app['userid'] = '>>>default<<<' app['started_at'] = datetime.datetime.utcnow().isoformat() SchedulerState.set_current_app(app) SchedulerState.set_event_lock(False) fap = globals()[app['name']](app['username'], app['userid']) try: fap.run(params=params) finally: fap.close() SchedulerState.set_current_app({})
def stop_app(self, c_app, stop_code=None, stop_message=None): # flask_log(" ========= STOP_APP ====================") if not c_app or 'task_id' not in c_app: print_flush('Cannot stop invalid app') return from tasks.celery import app if not c_app.get('is_default', False) and not c_app.get('is_forced', False): if stop_code and stop_message and 'userid' in c_app: Websock.send_data(stop_code, stop_message, c_app['username'], c_app['userid']) app.control.revoke(c_app['task_id'], terminate=True) self.frontage.fade_out() SchedulerState.set_current_app({})
def start_fap(app): SchedulerState.set_app_started_at() app['expire_at'] = str(datetime.datetime.utcnow() + datetime.timedelta(seconds=app['expires'])) app['is_default'] = False app['is_forced'] = False app['task_id'] = start_fap.request.id app['started_at'] = datetime.datetime.utcnow().isoformat() SchedulerState.pop_user_app_queue() SchedulerState.set_current_app(app) SchedulerState.set_event_lock(False) fap = globals()[app['name']](app['username'], app['userid']) try: fap.run(params=app['params'], expires_at=app['expire_at']) finally: fap.close() SchedulerState.set_current_app({})
def clear_all_task(): celery.control.purge() SchedulerState.set_current_app({}) SchedulerState.set_event_lock(False)