from celery import Celery from celery.schedules import crontab from create_events import createEvents import os from flask import Flask from misc import currDay, datetime, time, timedelta from db import db, Period, Event basedir = os.path.abspath(os.path.dirname(__file__)) app = Flask(__name__) app.config['SECRET_KEY'] = os.environ['SECRET_KEY'] app.config['SQLALCHEMY_DATABASE_URI'] =\ 'mysql://' + os.environ['MYSQL_USER'] + \ ':' + os.environ['MYSQL_PASSWORD'] + \ '@' + os.environ['MYSQL_HOST'] + \ ':' + os.environ['MYSQL_PORT'] + \ '/' + os.environ['MYSQL_DB'] app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False db.init_app(app) redis_url = 'redis://' + \ os.environ['REDIS_HOST'] + \ ':' + os.environ['REDIS_PORT'] + \ '/' + os.environ['REDIS_DBNUM'] celerymsg = Celery('tasks', backend=redis_url, broker=redis_url) # Task definitions @celerymsg.task def runCreateEvents(): with app.app_context(): createEvents(db, currDay, Period, Event) # Scheduled tasks celerymsg.conf.beat_schedule = { 'hourly-createevents': { 'task': 'worker.runCreateEvents', # Run hourly 'schedule': crontab(hour="*"), } }