From 13aac5fd0b53b367e046340fe1d3e4324e4562a4 Mon Sep 17 00:00:00 2001 From: chaoyiwang Date: Wed, 26 Jul 2017 15:59:32 +0800 Subject: [PATCH 1/3] use another thread to save oplog --- oplog/models.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/oplog/models.py b/oplog/models.py index 9e2de5d..d8503fc 100644 --- a/oplog/models.py +++ b/oplog/models.py @@ -28,8 +28,7 @@ class OpLog(models.Model): time = models.DateTimeField() message = models.CharField(max_length=512) - -def add_oplog(user, op, app, app_version, message): +def _add_oplog(user, op, app, app_version, message): try: time = timezone.localtime(timezone.now()) oplog = OpLog(user=user, op=op, app=app, @@ -37,3 +36,9 @@ def add_oplog(user, op, app, app_version, message): oplog.save() except: pass + +def add_oplog(user, op, app, app_version, message): + from threading import Thread + t = Thread(target=_add_oplog, args=(user, op, app, app_version, message)) + t.start() + From 23657e417ccc080bd94178157e1730a2c3e54322 Mon Sep 17 00:00:00 2001 From: chaoyiwang Date: Wed, 26 Jul 2017 16:39:04 +0800 Subject: [PATCH 2/3] add utils for oplog --- apis/views.py | 2 +- oplog/models.py | 14 -------------- oplog/utils.py | 16 ++++++++++++++++ 3 files changed, 17 insertions(+), 15 deletions(-) create mode 100644 oplog/utils.py diff --git a/apis/views.py b/apis/views.py index d5d6e2b..970765c 100644 --- a/apis/views.py +++ b/apis/views.py @@ -15,7 +15,7 @@ from django.core.urlresolvers import reverse from raven.contrib.django.raven_compat.models import client from log import logger, op_logger -from oplog.models import add_oplog +from oplog.utils import add_oplog def render_op_result(op_result): diff --git a/oplog/models.py b/oplog/models.py index d8503fc..4d95748 100644 --- a/oplog/models.py +++ b/oplog/models.py @@ -1,5 +1,4 @@ from django.db import models -from django.utils import timezone; # Create your models here. @@ -28,17 +27,4 @@ class OpLog(models.Model): time = models.DateTimeField() message = models.CharField(max_length=512) -def _add_oplog(user, op, app, app_version, message): - try: - time = timezone.localtime(timezone.now()) - oplog = OpLog(user=user, op=op, app=app, - app_version=app_version, time=time, message=message) - oplog.save() - except: - pass - -def add_oplog(user, op, app, app_version, message): - from threading import Thread - t = Thread(target=_add_oplog, args=(user, op, app, app_version, message)) - t.start() diff --git a/oplog/utils.py b/oplog/utils.py new file mode 100644 index 0000000..ef0618e --- /dev/null +++ b/oplog/utils.py @@ -0,0 +1,16 @@ +from django.utils import timezone; +from threading import Thread + +def _add_oplog(user, op, app, app_version, message): + try: + time = timezone.localtime(timezone.now()) + oplog = OpLog(user=user, op=op, app=app, + app_version=app_version, time=time, message=message) + oplog.save() + except: + pass + +def add_oplog(user, op, app, app_version, message): + t = Thread(target=_add_oplog, args=(user, op, app, app_version, message)) + t.start() + From 60d60aa46a8faef9ace573461d496be7870f318c Mon Sep 17 00:00:00 2001 From: chaoyiwang Date: Wed, 26 Jul 2017 18:30:20 +0800 Subject: [PATCH 3/3] add migration --- oplog/migrations/0001_initial.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 oplog/migrations/0001_initial.py diff --git a/oplog/migrations/0001_initial.py b/oplog/migrations/0001_initial.py new file mode 100644 index 0000000..9de5e0a --- /dev/null +++ b/oplog/migrations/0001_initial.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models, migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='OpLog', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('user', models.CharField(max_length=64)), + ('op', models.CharField(max_length=16)), + ('app', models.CharField(max_length=32)), + ('app_version', models.CharField(max_length=128)), + ('time', models.DateTimeField()), + ('message', models.CharField(max_length=512)), + ], + ), + ]