mirror of
https://github.com/django-q2/django-q2.git
synced 2026-09-15 13:37:56 +08:00
147 lines
4.8 KiB
Python
147 lines
4.8 KiB
Python
import django.utils.timezone
|
|
import picklefield.fields
|
|
from django.db import migrations, models
|
|
|
|
|
|
class Migration(migrations.Migration):
|
|
|
|
dependencies = []
|
|
|
|
operations = [
|
|
migrations.CreateModel(
|
|
name="Schedule",
|
|
fields=[
|
|
(
|
|
"id",
|
|
models.AutoField(
|
|
verbose_name="ID",
|
|
auto_created=True,
|
|
serialize=False,
|
|
primary_key=True,
|
|
),
|
|
),
|
|
(
|
|
"func",
|
|
models.CharField(
|
|
max_length=256, help_text="e.g. module.tasks.function"
|
|
),
|
|
),
|
|
(
|
|
"hook",
|
|
models.CharField(
|
|
null=True,
|
|
blank=True,
|
|
max_length=256,
|
|
help_text="e.g. module.tasks.result_function",
|
|
),
|
|
),
|
|
(
|
|
"args",
|
|
models.CharField(
|
|
null=True,
|
|
blank=True,
|
|
max_length=256,
|
|
help_text="e.g. 1, 2, 'John'",
|
|
),
|
|
),
|
|
(
|
|
"kwargs",
|
|
models.CharField(
|
|
null=True,
|
|
blank=True,
|
|
max_length=256,
|
|
help_text="e.g. x=1, y=2, name='John'",
|
|
),
|
|
),
|
|
(
|
|
"schedule_type",
|
|
models.CharField(
|
|
verbose_name="Schedule Type",
|
|
choices=[
|
|
("O", "Once"),
|
|
("H", "Hourly"),
|
|
("D", "Daily"),
|
|
("W", "Weekly"),
|
|
("M", "Monthly"),
|
|
("Q", "Quarterly"),
|
|
("Y", "Yearly"),
|
|
],
|
|
default="O",
|
|
max_length=1,
|
|
),
|
|
),
|
|
(
|
|
"repeats",
|
|
models.SmallIntegerField(
|
|
verbose_name="Repeats",
|
|
default=-1,
|
|
help_text="n = n times, -1 = forever",
|
|
),
|
|
),
|
|
(
|
|
"next_run",
|
|
models.DateTimeField(
|
|
verbose_name="Next Run",
|
|
default=django.utils.timezone.now,
|
|
null=True,
|
|
),
|
|
),
|
|
("task", models.CharField(editable=False, null=True, max_length=100)),
|
|
],
|
|
options={
|
|
"verbose_name": "Scheduled task",
|
|
"ordering": ["next_run"],
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name="Task",
|
|
fields=[
|
|
(
|
|
"id",
|
|
models.AutoField(
|
|
verbose_name="ID",
|
|
auto_created=True,
|
|
serialize=False,
|
|
primary_key=True,
|
|
),
|
|
),
|
|
("name", models.CharField(editable=False, max_length=100)),
|
|
("func", models.CharField(max_length=256)),
|
|
("hook", models.CharField(null=True, max_length=256)),
|
|
(
|
|
"args",
|
|
picklefield.fields.PickledObjectField(editable=False, null=True),
|
|
),
|
|
(
|
|
"kwargs",
|
|
picklefield.fields.PickledObjectField(editable=False, null=True),
|
|
),
|
|
(
|
|
"result",
|
|
picklefield.fields.PickledObjectField(editable=False, null=True),
|
|
),
|
|
("started", models.DateTimeField(editable=False)),
|
|
("stopped", models.DateTimeField(editable=False)),
|
|
("success", models.BooleanField(editable=False, default=True)),
|
|
],
|
|
),
|
|
migrations.CreateModel(
|
|
name="Failure",
|
|
fields=[],
|
|
options={
|
|
"verbose_name": "Failed task",
|
|
"proxy": True,
|
|
},
|
|
bases=("django_q.task",),
|
|
),
|
|
migrations.CreateModel(
|
|
name="Success",
|
|
fields=[],
|
|
options={
|
|
"verbose_name": "Successful task",
|
|
"proxy": True,
|
|
},
|
|
bases=("django_q.task",),
|
|
),
|
|
]
|