Exemplo n.º 1
0
def main():
    # Running APScheduler
    aps = TornadoScheduler()
    aps.add_jobstore('mongodb', collection='example_jobs')
    aps.remove_all_jobs()
    aps.add_job(tick, 'interval', seconds=3)
    aps.add_job(tick, 'interval', seconds=3)
    aps.add_job(tick, 'interval', seconds=3)
    aps.start()
    # Running server
    app = TornadoApplication()
    app.listen(options.port)
    tornado.ioloop.IOLoop.current().start()
Exemplo n.º 2
0
def on_tick():
    tick_logger = logging.getLogger(__name__)
    try:
        last = snapshotter.snap_last_trade('BTC-USD')
        rxt = datetime.datetime.now(pytz.utc)
        px = float(last['price'])
        qty = float(last['size'])
        last_row = [{'index': rxt, 'price': px, 'qty': qty}]
        tick_lib.write('BTC-USD', last_row, metadata={'source': 'CoinbasePro'})
        tick_logger.info("wrote latest trade to Arctic: {} @ {}".format(
            qty, px))
    except CoinbaseAPIError:
        tick_logger.info(
            "ignoring transient error from Coinbase Pro API; will retry")


if __name__ == '__main__':
    scheduler = TornadoScheduler()
    scheduler.add_jobstore(MemoryJobStore())
    scheduler.add_executor(TornadoExecutor())

    scheduler.add_job(on_tick, 'interval', minutes=1)
    scheduler.start()

    # Execution will block here until Ctrl+C (Ctrl+Break on Windows) is pressed.
    try:
        logger.info("starting Tornado")
        IOLoop.instance().start()
    except (KeyboardInterrupt, SystemExit):
        pass
Exemplo n.º 3
0
import time, datetime
import json
from dateutil.relativedelta import relativedelta
from libs.db_context import get_db_url
from websdk.application import Application as myApp
from cron.cron_jobs import *
from websdk.web_logs import ins_log
from websdk.base_handler import LivenessProbe
from apscheduler.schedulers.tornado import TornadoScheduler
from libs.base_handler import BaseHandler
from models.cron import CronLog, model_to_dict
from tornado.options import options

scheduler = TornadoScheduler()
scheduler.add_jobstore('sqlalchemy', url=get_db_url('default'))


def job_from(**jobargs):
    job_id = jobargs['job_id']
    func = __name__ + ':' + 'exec_cmd'
    args = jobargs['cmd']
    cron = jobargs['cron'].split(' ')
    cron_rel = dict(second=cron[0],
                    minute=cron[1],
                    hour=cron[2],
                    day=cron[3],
                    month=cron[4],
                    day_of_week=cron[5])
    scheduler.add_job(func=func,
                      id=job_id,
Exemplo n.º 4
0
def get_mysql_jobstores():
    scheduler = TornadoScheduler()
    scheduler.add_jobstore('sqlalchemy', url=get_db_url('default'))
    return scheduler