added scheduled tasks with admin interface

This commit is contained in:
Ilan Steemers
2015-06-25 19:48:38 +02:00
parent 6314742343
commit d06de5769b
7 changed files with 156 additions and 17 deletions
+26 -7
View File
@@ -2,6 +2,7 @@
from __future__ import unicode_literals
from django.db import models, migrations
import django.utils.timezone
import picklefield.fields
@@ -11,19 +12,37 @@ class Migration(migrations.Migration):
]
operations = [
migrations.CreateModel(
name='Schedule',
fields=[
('id', models.AutoField(serialize=False, primary_key=True, auto_created=True, verbose_name='ID')),
('func', models.CharField(max_length=256)),
('hook', models.CharField(blank=True, max_length=256, null=True)),
('args', models.CharField(blank=True, max_length=256, null=True)),
('kwargs', models.CharField(blank=True, max_length=256, null=True)),
('schedule_type', models.CharField(choices=[('O', 'Once'), ('H', 'Hourly'), ('D', 'Daily'), ('W', 'Weekly'), ('M', 'Monthly'), ('Q', 'Quarterly'), ('Y', 'Yearly')], max_length=1, verbose_name='Schedule Type', default='O')),
('repeats', models.SmallIntegerField(verbose_name='Repeats', default=-1)),
('next_run', models.DateTimeField(null=True, verbose_name='Next Run', default=django.utils.timezone.now)),
('task', models.CharField(editable=False, max_length=100, null=True)),
],
options={
'ordering': ['next_run'],
'verbose_name': 'Scheduled task',
},
),
migrations.CreateModel(
name='Task',
fields=[
('id', models.AutoField(serialize=False, primary_key=True, auto_created=True, verbose_name='ID')),
('name', models.CharField(max_length=100)),
('name', models.CharField(editable=False, max_length=100)),
('func', models.CharField(max_length=256)),
('hook', models.CharField(max_length=256, null=True)),
('args', picklefield.fields.PickledObjectField(editable=False)),
('kwargs', picklefield.fields.PickledObjectField(editable=False)),
('result', picklefield.fields.PickledObjectField(null=True, editable=False)),
('started', models.DateTimeField()),
('stopped', models.DateTimeField()),
('success', models.BooleanField(default=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(
@@ -31,8 +50,8 @@ class Migration(migrations.Migration):
fields=[
],
options={
'proxy': True,
'verbose_name': 'Failed task',
'proxy': True,
},
bases=('django_q.task',),
),
@@ -41,8 +60,8 @@ class Migration(migrations.Migration):
fields=[
],
options={
'proxy': True,
'verbose_name': 'Successful task',
'proxy': True,
},
bases=('django_q.task',),
),