42 lines
1.2 KiB
Python
42 lines
1.2 KiB
Python
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="*"),
|
|
}
|
|
} |