|
@@ -0,0 +1,68 @@
|
|
|
+from datetime import datetime
|
|
|
+
|
|
|
+from sqlalchemy import Column, Sequence, ForeignKey
|
|
|
+from sqlalchemy import Integer, String, Text, DateTime, PickleType
|
|
|
+from sqlalchemy.orm import relation
|
|
|
+from sqlalchemy.ext.declarative import declarative_base
|
|
|
+
|
|
|
+from celery import states
|
|
|
+
|
|
|
+ModelBase = declarative_base()
|
|
|
+
|
|
|
+
|
|
|
+class Task(ModelBase):
|
|
|
+ """Task result/status."""
|
|
|
+ __tablename__ = "celery_taskmeta"
|
|
|
+
|
|
|
+ id = Column("id", Integer, Sequence("task_id_sequence"), primary_key=True)
|
|
|
+ task_id = Column("task_id", String(255), primary_key=True)
|
|
|
+ status = Column("status", String(50), default=states.PENDING)
|
|
|
+ result = Column("result", PickleType, nullable=True)
|
|
|
+ date_done = Column("date_done", DateTime,
|
|
|
+ onupdate=datetime.now, nullable=True)
|
|
|
+ traceback = Column("traceback", Text, nullable=True)
|
|
|
+
|
|
|
+ def __init__(self, task_id):
|
|
|
+ self.task_id = task_id
|
|
|
+
|
|
|
+ def __str__(self):
|
|
|
+ return "<Task(%s, %s, %s, %s)>" % (self.task_id,
|
|
|
+ self.result,
|
|
|
+ self.status,
|
|
|
+ self.traceback)
|
|
|
+
|
|
|
+ def to_dict(self):
|
|
|
+ return {"task_id": self.task_id,
|
|
|
+ "status": self.status,
|
|
|
+ "result": self.result,
|
|
|
+ "date_done": self.date_done,
|
|
|
+ "traceback": self.traceback}
|
|
|
+
|
|
|
+ def __unicode__(self):
|
|
|
+ return u"<Task: %s successful: %s>" % (self.task_id, self.status)
|
|
|
+
|
|
|
+
|
|
|
+class TaskSet(ModelBase):
|
|
|
+ """TaskSet result"""
|
|
|
+ __tablename__ = "celery_tasksetmeta"
|
|
|
+
|
|
|
+ id = Column("id", Integer, Sequence("taskset_id_sequence"),
|
|
|
+ primary_key=True)
|
|
|
+ taskset_id = Column("taskset_id", String(255), unique=True)
|
|
|
+ result = Column("result", PickleType, nullable=True)
|
|
|
+ date_done = Column("date_done", DateTime,
|
|
|
+ onupdate=datetime.now, nullable=True)
|
|
|
+
|
|
|
+ def __init__(self, task_id):
|
|
|
+ self.task_id = task_id
|
|
|
+
|
|
|
+ def __str__(self):
|
|
|
+ return "<TaskSet(%s, %s)>" % (self.task_id, self.result)
|
|
|
+
|
|
|
+ def to_dict(self):
|
|
|
+ return {"taskset_id": self.taskset_id,
|
|
|
+ "result": self.result,
|
|
|
+ "date_done": self.date_done}
|
|
|
+
|
|
|
+ def __unicode__(self):
|
|
|
+ return u"<TaskSet: %s>" % (self.taskset_id)
|