重启服务和备份数据库task

This commit is contained in:
caoqianming 2022-02-25 10:16:25 +08:00
parent dd51db56f1
commit f4f79089cf
3 changed files with 42 additions and 3 deletions

View File

@ -0,0 +1,25 @@
from __future__ import absolute_import, unicode_literals
from rest_framework.response import Response
from celery import shared_task
@shared_task
def backup_database():
"""
备份数据库
"""
import os
ret = os.popen('sudo pg_dump -U postgres -d hberp -f /home/lighthouse/hberp_backup.sql')
return Response(ret.read())
@shared_task
def reload_server():
import os # 更新后端
os.chdir('/home/lighthouse/hberp')
ret = os.popen('sudo git pull && sudo service supervisor reload')
return Response(ret.read())

View File

@ -2,7 +2,7 @@ from django.db.models import base
from rest_framework import urlpatterns
from django.urls import path, include
from rest_framework.routers import DefaultRouter
from apps.develop.views import CleanDataView, UpdateCuttingView, UpdateEquipState, UpdateFIFOItem, UpdateFIFONumber, UpdateLastTestResult, UpdateNeedToOrder, UpdateSpg
from apps.develop.views import BackupDatabase, CleanDataView, ReloadServer, UpdateCuttingView, UpdateEquipState, UpdateFIFOItem, UpdateFIFONumber, UpdateLastTestResult, UpdateNeedToOrder, UpdateSpg
urlpatterns = [
path('cleandata/', CleanDataView.as_view()),
@ -13,6 +13,8 @@ urlpatterns = [
path('update_spg/', UpdateSpg.as_view()),
path('update_equip_state/', UpdateEquipState.as_view()),
path('update_need_to_order/', UpdateNeedToOrder.as_view()),
path('update_fifo_number/', UpdateFIFONumber.as_view())
path('update_fifo_number/', UpdateFIFONumber.as_view()),
path('reload_server/', ReloadServer.as_view()),
path('backup_database/', BackupDatabase.as_view())
]

View File

@ -4,6 +4,7 @@ from rest_framework.decorators import permission_classes
from rest_framework.views import APIView
from rest_framework.permissions import IsAdminUser
from rest_framework.response import Response
from apps.develop.tasks import backup_database, reload_server
from apps.inm.models import FIFO, FIFOItem, Inventory, MaterialBatch
from apps.mtm.models import Material
from apps.pm.models import ProductionPlan, SubProductionPlan
@ -117,4 +118,15 @@ class UpdateFIFONumber(APIView):
else:
i.number = 'CK' + ranstr(7)
i.save()
return Response()
return Response()
class ReloadServer(APIView):
permission_classes = [IsAdminUser]
def post(self, request):
reload_server()
class BackupDatabase(APIView):
permission_classes = [IsAdminUser]
def post(self, request):
backup_database()