updated pages
This commit is contained in:
46
app/models/scheduled_task.py
Normal file
46
app/models/scheduled_task.py
Normal file
@@ -0,0 +1,46 @@
|
||||
"""
|
||||
Scheduled Task Model
|
||||
"""
|
||||
|
||||
from app.extensions import db
|
||||
from datetime import datetime
|
||||
import pytz
|
||||
|
||||
# Get local timezone
|
||||
LOCAL_TZ = pytz.timezone('Europe/Bucharest') # Adjust this to your local timezone
|
||||
|
||||
def get_local_time():
|
||||
"""Get current local time"""
|
||||
return datetime.now(LOCAL_TZ).replace(tzinfo=None)
|
||||
|
||||
class ScheduledTask(db.Model):
|
||||
"""Model for scheduled maintenance tasks"""
|
||||
|
||||
__tablename__ = 'scheduled_task'
|
||||
|
||||
id = db.Column(db.Integer, primary_key=True)
|
||||
name = db.Column(db.String(100), nullable=False)
|
||||
task_type = db.Column(db.String(50), nullable=False) # cleanup_files, clear_logs, optimize_db, backup_db
|
||||
schedule = db.Column(db.String(100), nullable=False) # Cron expression
|
||||
enabled = db.Column(db.Boolean, default=True, nullable=False)
|
||||
created_at = db.Column(db.DateTime, default=get_local_time, nullable=False)
|
||||
last_run = db.Column(db.DateTime, nullable=True)
|
||||
next_run = db.Column(db.DateTime, nullable=True)
|
||||
run_count = db.Column(db.Integer, default=0, nullable=False)
|
||||
|
||||
def __repr__(self):
|
||||
return f'<ScheduledTask {self.name}>'
|
||||
|
||||
def to_dict(self):
|
||||
"""Convert to dictionary for JSON serialization"""
|
||||
return {
|
||||
'id': self.id,
|
||||
'name': self.name,
|
||||
'task_type': self.task_type,
|
||||
'schedule': self.schedule,
|
||||
'enabled': self.enabled,
|
||||
'created_at': self.created_at.isoformat() if self.created_at else None,
|
||||
'last_run': self.last_run.isoformat() if self.last_run else None,
|
||||
'next_run': self.next_run.isoformat() if self.next_run else None,
|
||||
'run_count': self.run_count
|
||||
}
|
||||
Reference in New Issue
Block a user