コード例 #1
0
ファイル: tasks.py プロジェクト: sheep7/leopard-lavatory
    CELERY_BROKER_URL='redis://localhost:6379',
    CELERY_RESULT_BACKEND='redis://localhost:6379',
    MAIL_SERVER=os.environ.get('FLASK_MAIL_SERVER'),
    MAIL_PORT=587,
    MAIL_DEBUG=True,
    MAIL_USE_TLS=True,
    MAIL_USE_SSL=False,
    MAIL_USERNAME=os.environ.get('FLASK_MAIL_USERNAME'),
    MAIL_PASSWORD=os.environ.get('FLASK_MAIL_PASSWORD'),
    MAIL_DEFAULT_SENDER=os.environ.get('FLASK_MAIL_DEFAULT_SENDER'),
)
celery = make_celery(flask_app)

mail = Mail(flask_app)

mail.debug = True


@celery.on_after_configure.connect
def setup_periodic_task(sender, **kwargs):
    sender.add_periodic_task(
        # by default, run jobs once an hour, every day between 8 in the morning and 8 in the evening
        crontab(hour=os.environ.get('CELERY_CRONTAB_HOURS', '8-20'), minute='0'),
        run_all_watchjobs.s(),
        name="Run watchjobs")


@celery.task
def run_all_watchjobs():
    with database_session() as dbs:
        LOG.info('Running all watch jobs...')