Ejemplo n.º 1
0
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")
Ejemplo n.º 2
0
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()
Ejemplo n.º 3
0
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')
Ejemplo n.º 4
0
def start_scheduler():
    scheduler = Scheduler()

    scheduler.every(10).seconds.do(asis_di)
    scheduler.run_continuously()
Ejemplo n.º 5
0
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()
Ejemplo n.º 6
0
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)
Ejemplo n.º 7
0
def start_scheduler():
    scheduler = Scheduler()
    scheduler.every().second.do(pr)
    scheduler.run_continuously()
Ejemplo n.º 8
0
def start_scheduler(request):
    scheduler = Scheduler()
    scheduler.every(10).seconds.do(update_prices, request)
    scheduler.run_continuously()
Ejemplo n.º 9
0
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()