Skip to content

Commit

Permalink
fix: db connection timeout
Browse files Browse the repository at this point in the history
  • Loading branch information
OrenZhang committed Jun 9, 2024
1 parent 65ae55d commit e9e5f9e
Show file tree
Hide file tree
Showing 7 changed files with 23 additions and 23 deletions.
6 changes: 3 additions & 3 deletions apps/cos/client.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import traceback

from asgiref.sync import sync_to_async
from channels.db import database_sync_to_async
from django.conf import settings
from django.contrib.auth import get_user_model
from django.core.files.uploadedfile import InMemoryUploadedFile
Expand All @@ -24,7 +24,7 @@ class STSClient:
@classmethod
async def generate_cos_upload_credential(cls, user: USER_MODEL, filename: str) -> COSCredential:
try:
cos_log = await sync_to_async(COSLog.objects.create)(
cos_log = await database_sync_to_async(COSLog.objects.create)(
filename=filename, key=COSLog.build_key(filename), resp={}, owner=user
)
except IntegrityError:
Expand Down Expand Up @@ -62,7 +62,7 @@ async def generate_cos_upload_credential(cls, user: USER_MODEL, filename: str) -
raise TempKeyGenerateFailed() from err
finally:
cos_log.resp = response
await sync_to_async(cos_log.save)(update_fields=["resp"])
await database_sync_to_async(cos_log.save)(update_fields=["resp"])


class COSClient:
Expand Down
4 changes: 2 additions & 2 deletions apps/cos/permissions.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from asgiref.sync import sync_to_async
from channels.db import database_sync_to_async
from rest_framework.permissions import BasePermission

from apps.permission.constants import PermissionItem
Expand All @@ -11,6 +11,6 @@ class UploadFilePermission(BasePermission):
"""

async def has_permission(self, request, view):
return await sync_to_async(UserPermission.check_permission)(
return await database_sync_to_async(UserPermission.check_permission)(
user=request.user, permission_item=PermissionItem.UPLOAD_FILE
)
6 changes: 3 additions & 3 deletions apps/doc/permissions.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from asgiref.sync import sync_to_async
from channels.db import database_sync_to_async
from rest_framework.permissions import BasePermission
from rest_framework.request import Request
from rest_framework.viewsets import GenericViewSet
Expand All @@ -17,7 +17,7 @@ async def has_permission(self, request: Request, view: GenericViewSet):
return True

async def has_object_permission(self, request: Request, view: GenericViewSet, obj: Doc):
return await sync_to_async(self._has_object_permission)(request, view, obj)
return await database_sync_to_async(self._has_object_permission)(request, view, obj)

def _has_object_permission(self, request: Request, view: GenericViewSet, obj: Doc):
# Retrieve Public Inst is Allowed
Expand All @@ -33,6 +33,6 @@ class CreateDocPermission(BasePermission):
"""

async def has_permission(self, request, view):
return await sync_to_async(UserPermission.check_permission)(
return await database_sync_to_async(UserPermission.check_permission)(
user=request.user, permission_item=PermissionItem.CREATE_DOC
)
16 changes: 8 additions & 8 deletions apps/doc/views/doc.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from asgiref.sync import sync_to_async
from channels.db import database_sync_to_async
from django.conf import settings
from django.db import transaction
from django.db.models import Q, QuerySet
Expand Down Expand Up @@ -100,7 +100,7 @@ async def list(self, request: Request, *args, **kwargs):

# Page
page = NumPagination()
queryset = await sync_to_async(page.paginate_queryset)(queryset=queryset, request=request, view=self)
queryset = await database_sync_to_async(page.paginate_queryset)(queryset=queryset, request=request, view=self)

# Serialize
serializer = DocListSerializer(instance=queryset, many=True)
Expand All @@ -111,7 +111,7 @@ async def retrieve(self, request: Request, *args, **kwargs):
Doc Info
"""

inst: QuerySet = await sync_to_async(self.get_and_incr_read)()
inst: QuerySet = await database_sync_to_async(self.get_and_incr_read)()
serializer = DocInfoSerializer(instance=inst, many=True)
data = await serializer.adata
return Response(data[0])
Expand All @@ -137,7 +137,7 @@ async def create(self, request: Request, *args, **kwargs):
request_data = serializer.validated_data

# Create
doc = await sync_to_async(self.create_and_bind_tag)(request, request_data)
doc = await database_sync_to_async(self.create_and_bind_tag)(request, request_data)

return Response({"id": doc.id})

Expand Down Expand Up @@ -165,15 +165,15 @@ async def update(self, request: Request, *args, **kwargs):
"""

# Load Inst
inst: Doc = await sync_to_async(self.get_object)()
inst: Doc = await database_sync_to_async(self.get_object)()

# Validate
serializer = EditDocSerializer(data=request.data)
serializer.is_valid(raise_exception=True)
request_data = serializer.validated_data

# Update
await sync_to_async(self.update_and_bind_tag)(inst, request_data)
await database_sync_to_async(self.update_and_bind_tag)(inst, request_data)

return Response({"id": inst.id})

Expand All @@ -193,6 +193,6 @@ async def destroy(self, request, *args, **kwargs):
Delete Doc
"""

inst = await sync_to_async(self.get_object)()
await sync_to_async(inst.delete)()
inst = await database_sync_to_async(self.get_object)()
await database_sync_to_async(inst.delete)()
return Response()
6 changes: 3 additions & 3 deletions apps/doc/views/tag.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from asgiref.sync import sync_to_async
from channels.db import database_sync_to_async
from django.db.models import QuerySet
from ovinc_client.core.auth import SessionAuthenticate
from ovinc_client.core.viewsets import ListMixin, MainViewSet
Expand All @@ -23,7 +23,7 @@ async def list(self, request: Request, *args, **kwargs):
Tag List
"""

tags = await sync_to_async(self.list_tags)()
tags = await database_sync_to_async(self.list_tags)()
serializer = TagInfoSerializer(instance=tags, many=True)
return Response(data=await serializer.adata)

Expand All @@ -36,7 +36,7 @@ async def bound(self, request: Request, *args, **kwargs):
Bound Tags
"""

tags = await sync_to_async(self.filter_tags)()
tags = await database_sync_to_async(self.filter_tags)()
serializer = TagInfoSerializer(instance=tags, many=True)
return Response(data=await serializer.adata)

Expand Down
4 changes: 2 additions & 2 deletions apps/home/views.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from asgiref.sync import sync_to_async
from channels.db import database_sync_to_async
from django.conf import settings
from django.conf.global_settings import LANGUAGE_COOKIE_NAME
from django.contrib.auth import get_user_model
Expand Down Expand Up @@ -36,7 +36,7 @@ class SitemapView(ListMixin, MainViewSet):
authentication_classes = [SessionAuthenticate]

async def list(self, request, *args, **kwargs):
sitemap = await sync_to_async(Sitemap)()
sitemap = await database_sync_to_async(Sitemap)()
return HttpResponse(content=sitemap.tree.toxml(), content_type="application/xml")


Expand Down
4 changes: 2 additions & 2 deletions apps/permission/views.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from asgiref.sync import sync_to_async
from channels.db import database_sync_to_async
from ovinc_client.core.auth import SessionAuthenticate
from ovinc_client.core.viewsets import ListMixin, MainViewSet
from rest_framework.response import Response
Expand All @@ -20,6 +20,6 @@ async def list(self, request, *args, **kwargs):
List Current User Permissions
"""

queryset = await sync_to_async(UserPermission.load_permissions)(request.user)
queryset = await database_sync_to_async(UserPermission.load_permissions)(request.user)
serializer = UserPermissionListSerializer(queryset, many=True)
return Response(await serializer.adata)

0 comments on commit e9e5f9e

Please sign in to comment.