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()
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
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,
def get_mysql_jobstores(): scheduler = TornadoScheduler() scheduler.add_jobstore('sqlalchemy', url=get_db_url('default')) return scheduler