- License Usage Calculation realised
- View License Usages - Celery Beat container added - First schedule in Celery Beat for calculating usage (hourly) - repopack can now split for different components - Various fixes as consequece of changing file_location / file_name ==> bucket_name / object_name - Celery Routing / Queuing updated
This commit is contained in:
44
eveai_beat/__init__.py
Normal file
44
eveai_beat/__init__.py
Normal file
@@ -0,0 +1,44 @@
|
||||
import logging
|
||||
import logging.config
|
||||
from flask import Flask
|
||||
import os
|
||||
|
||||
from common.utils.celery_utils import make_celery, init_celery
|
||||
from config.logging_config import LOGGING
|
||||
from config.config import get_config
|
||||
|
||||
|
||||
def create_app(config_file=None):
|
||||
app = Flask(__name__)
|
||||
|
||||
environment = os.getenv('FLASK_ENV', 'development')
|
||||
|
||||
match environment:
|
||||
case 'development':
|
||||
app.config.from_object(get_config('dev'))
|
||||
case 'production':
|
||||
app.config.from_object(get_config('prod'))
|
||||
case _:
|
||||
app.config.from_object(get_config('dev'))
|
||||
|
||||
logging.config.dictConfig(LOGGING)
|
||||
|
||||
register_extensions(app)
|
||||
|
||||
celery = make_celery(app.name, app.config)
|
||||
init_celery(celery, app, is_beat=True)
|
||||
|
||||
from . import schedule
|
||||
celery.conf.beat_schedule = schedule.beat_schedule
|
||||
|
||||
app.logger.info("EveAI Beat Scheduler Started Successfully")
|
||||
app.logger.info("-------------------------------------------------------------------------------------------------")
|
||||
|
||||
return app, celery
|
||||
|
||||
|
||||
def register_extensions(app):
|
||||
pass
|
||||
|
||||
|
||||
app, celery = create_app()
|
||||
17
eveai_beat/schedule.py
Normal file
17
eveai_beat/schedule.py
Normal file
@@ -0,0 +1,17 @@
|
||||
from celery.schedules import crontab
|
||||
|
||||
# Define the Celery beat schedule here
|
||||
beat_schedule = {
|
||||
'update-tenant-usages-every-hour': {
|
||||
'task': 'update_usages',
|
||||
'schedule': crontab(minute='0'), # Runs every hour
|
||||
'args': (),
|
||||
'options': {'queue': 'entitlements'}
|
||||
},
|
||||
# 'send-invoices-every-month': {
|
||||
# 'task': 'send_invoices',
|
||||
# 'schedule': crontab(day_of_month=1, hour=0, minute=0), # Runs on the 1st of every month
|
||||
# 'args': ()
|
||||
# },
|
||||
# Add more schedules as needed
|
||||
}
|
||||
Reference in New Issue
Block a user