def start_scheduler(): now = datetime.now() dt_string = now.strftime("%d/%m/%Y %H:%M:%S") flag = GlobalFlag.objects.get(name="SchedulerStarted") if flag is not None: if not flag.active: scheduler = Scheduler() if scheduler is not None: print("start_scheduler called at " + dt_string) scheduler.every(1).minutes.do(pulse_interlocks) scheduler.every().day.at("22:00").do( daily_validate_transactions) scheduler.every(15).minutes.do(print_status) #end_run = scheduler.run_continuously() flag.active = True flag.save() else: print("There was a problem creatings the Scheduler") else: print("The scheduler has already been started") else: print("No global flag named SchedulerStarted has been found")
def run_continuously(): scheduler = Scheduler() for task in settings.CELERYBEAT_SCHEDULE.values(): apply_async = TaskWorker.resolve_callable(task['task']).apply_async total_seconds = task['schedule'].total_seconds() scheduler.every(total_seconds).seconds.do(apply_async) scheduler.run_continuously()
def start_scheduler(): # Initialisation de la BdD en premier (suppression (vider la bdd) & insertion 100 titres) vider_BD() remplir_BD() # Executer le scheduler asyn scheduler = Scheduler() scheduler.every(10).seconds.do(addArticle) scheduler.run_continuously() print('ok')
def start_scheduler(): scheduler = Scheduler() scheduler.every(10).seconds.do(asis_di) scheduler.run_continuously()
def start_scheduler(): from .models import Stock, User, CashEditLog, CashFlow def update_cash_flows(): cycles = 0 for user in User.objects.all(): for cash_flow in user.cash_flows.all(): now = datetime.datetime.now(tz=get_current_timezone()) delta = (now - cash_flow.last_invoked).total_seconds() interval = cash_flow.frequency * SECONDS_IN_DAY while delta > interval: cash_flow.last_invoked = cash_flow.last_invoked + datetime.timedelta( seconds=interval) cash_flow.total_value_accrued = cash_flow.total_value_accrued + cash_flow.value edit_log = CashEditLog(value=cash_flow.value, description=cash_flow.title + " Automatic", time_created=now) edit_log.save() user.cash_edit_logs.add(edit_log) user.cash_amount = user.cash_amount + cash_flow.value delta = (now - cash_flow.last_invoked).total_seconds() cycles += 1 cash_flow.save() user.save() print("Cash flows updated. Cycles run: {}.".format(cycles)) def update(): update_cash_flows() def update_stock_name(stock): request_url = FINNHUB_PROFILE_URL + '?' + urlencode( { 'symbol': stock.symbol, 'token': FINNHUB_API_KEY }) payload = {} headers = {} response = requests.request("GET", request_url, headers=headers, data=payload) try: # load response data into object data = json.loads(response.text.encode('utf8')) if 'name' in data: # if dict is empty, means no data is available stock.name_status = FIELD_VALID stock.name = data['name'] else: stock.name_status = FIELD_INVALID except json.decoder.JSONDecodeError: # decode error means API returned a string saying the limit was exceeded pass stock.save() def update_stock_quote(stock): request_url = FINNHUB_QUOTE_URL + '?' + urlencode( { 'symbol': stock.symbol, 'token': FINNHUB_API_KEY }) payload = {} headers = {} response = requests.request("GET", request_url, headers=headers, data=payload) try: # load response data into object data = json.loads(response.text.encode('utf8')) if bool(data ) and data['c'] != 0: # checks if dict is not empty stock.quote_status = FIELD_VALID stock.quote = json.dumps(data) else: stock.quote_status = FIELD_INVALID except json.decoder.JSONDecodeError: # decode error means API returned a string saying the limit was exceeded pass stock.save() stocks = Stock.objects.order_by("-last_updated") fields_changed = 0 for stock in stocks: if stock.name_status != FIELD_INVALID: update_stock_name(stock) fields_changed += 1 if stock.quote_status != FIELD_INVALID: update_stock_quote(stock) fields_changed += 1 print('Updated at {}. Fields changed: {}'.format( datetime.datetime.now(tz=get_current_timezone()), fields_changed)) scheduler = Scheduler() scheduler.every(1).minutes.do(update) scheduler.run_continuously()
from schedule import Scheduler from tournaments.jobs import draw_ladder os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'trn.settings') application = get_wsgi_application() def run_continuously(self, interval=1): cease_continuous_run = threading.Event() class ScheduleThread(threading.Thread): @classmethod def run(cls): while not cease_continuous_run.is_set(): self.run_pending() time.sleep(interval) continuous_thread = ScheduleThread() continuous_thread.setDaemon(True) continuous_thread.start() return cease_continuous_run Scheduler.run_continuously = run_continuously x = Scheduler() x.run_continuously() x.every().minutes.do(draw_ladder)
def start_scheduler(): scheduler = Scheduler() scheduler.every().second.do(pr) scheduler.run_continuously()
def start_scheduler(request): scheduler = Scheduler() scheduler.every(10).seconds.do(update_prices, request) scheduler.run_continuously()
def start_scheduler(): scheduler = Scheduler() scheduler.every().second.do(sendEmailOnceDelievered) scheduler.run_continuously()
def detailedposts_scheduler(): scheduler = Scheduler() scheduler.every(30).seconds.do(update_detailed_posts) scheduler.run_continuously()
def visibleposts_scheduler(): scheduler = Scheduler() scheduler.every(30).seconds.do(get_all_visible_posts) scheduler.run_continuously()
def github_scheduler(): scheduler = Scheduler() scheduler.every(30).seconds.do(get_all_github_activity) scheduler.run_continuously()
def foreignauthors_scheduler(): scheduler = Scheduler() scheduler.every(30).seconds.do(update_all_foreign_authors) scheduler.run_continuously()
def all_updates_scheduler(): # Running them all in one thread again scheduler = Scheduler() scheduler.every(30).seconds.do(get_updates) scheduler.run_continuously()