diff --git a/.gitea/workflows/push-dev.yaml b/.gitea/workflows/push-dev.yaml index 084ef00..18e6d12 100644 --- a/.gitea/workflows/push-dev.yaml +++ b/.gitea/workflows/push-dev.yaml @@ -48,6 +48,7 @@ jobs: OWNER=${{ gitea.repository_owner }} TAG=${{ gitea.ref_name }} ASPNETCORE_ENVIRONMENT=${{ env.ASPNETCORE_ENVIRONMENT }} + replicas=1 run: | echo "$env_file">.env @@ -59,7 +60,7 @@ jobs: username: ${{ secrets.PUBLISH_USER_NAME }} password: ${{ secrets.PUBLISH_PASSWORD }} target: ${{ env.PUBLISH_PATH }} - source: docker-compose.yaml,.env + source: docker-swarm.yaml,.env - name: 部署到服务器 uses: docker://appleboy/drone-ssh @@ -74,7 +75,7 @@ jobs: [ -f .env ] && export $(sed '/^#/d' .env) - docker stack deploy -c docker-compose.yaml --with-registry-auth mk + docker stack deploy -c docker-swarm.yaml --with-registry-auth mk - name: 发送构建通知 if: ${{ always() }} diff --git a/.gitea/workflows/push-staging.yaml b/.gitea/workflows/push-staging.yaml index 19c5179..5aa9e79 100644 --- a/.gitea/workflows/push-staging.yaml +++ b/.gitea/workflows/push-staging.yaml @@ -48,6 +48,7 @@ jobs: OWNER=${{ gitea.repository_owner }} TAG=${{ gitea.ref_name }} ASPNETCORE_ENVIRONMENT=${{ env.ASPNETCORE_ENVIRONMENT }} + replicas=8 run: | echo "$env_file">.env @@ -59,7 +60,7 @@ jobs: username: ${{ secrets.PUBLISH_USER_NAME }} password: ${{ secrets.PUBLISH_PASSWORD }} target: ${{ env.PUBLISH_PATH }} - source: docker-compose.yaml,.env + source: docker-swarm.yaml,.env - name: 部署到服务器 uses: docker://appleboy/drone-ssh @@ -74,7 +75,7 @@ jobs: [ -f .env ] && export $(sed '/^#/d' .env) - docker stack deploy -c docker-compose.yaml --with-registry-auth mk + docker stack deploy -c docker-swarm.yaml --with-registry-auth mk - name: 发送构建通知 if: ${{ always() }} diff --git a/Dolphin.ExamPictureCut.Application/Exams/ExamManager.cs b/Dolphin.ExamPictureCut.Application/Exams/ExamManager.cs index 7464b60..abb8e72 100644 --- a/Dolphin.ExamPictureCut.Application/Exams/ExamManager.cs +++ b/Dolphin.ExamPictureCut.Application/Exams/ExamManager.cs @@ -445,6 +445,7 @@ public class ExamManager : DomainService, IExamManager catch (Exception ex) { Logger.LogError("{ExamSubjectId} {penSerial} 收集失败! {error}", eto.ExamSubjectId, penSerial, ex); + await NotifyExt.DingTalk($"{eto.ExamSubjectId} {penSerial} 收集失败! 异常:{ex.Message}"); } finally { diff --git a/Dolphin.ExamPictureCut.Application/Services/ExamAppService.cs b/Dolphin.ExamPictureCut.Application/Services/ExamAppService.cs index 8756216..7650ee7 100644 --- a/Dolphin.ExamPictureCut.Application/Services/ExamAppService.cs +++ b/Dolphin.ExamPictureCut.Application/Services/ExamAppService.cs @@ -1,4 +1,5 @@ using Dolphin.ExamPictureCut.Exams; +using Dolphin.ExamPictureCut.Extensions; namespace Dolphin.ExamPictureCut.Services; @@ -14,4 +15,9 @@ public class ExamAppService : DolphinAppService { await _examManager.ExamStudentGather(new() { SchoolId = 3, StudentExamNum = "BP2-3G3-07K-C1", BookId = 529493484986437, ExamSubjectSchoolId = 530151338438726, ExamSubjectId = 530151329325125, LastCollectTime = DateTime.Now }); } + + public async Task NotifyTest() + { + await NotifyExt.DingTalk($"{530151329325125} {"BP2-3G3-07K-C1"} 收集失败! 异常: {"通知测试"}"); + } } diff --git a/Dolphin.ExamPictureCut.Core/Extensions/NotifyExt.cs b/Dolphin.ExamPictureCut.Core/Extensions/NotifyExt.cs new file mode 100644 index 0000000..c95635c --- /dev/null +++ b/Dolphin.ExamPictureCut.Core/Extensions/NotifyExt.cs @@ -0,0 +1,19 @@ +using Flurl.Http; + +namespace Dolphin.ExamPictureCut.Extensions; + +public class NotifyExt +{ + public static async Task DingTalk(string text) + { + await "https://oapi.dingtalk.com/robot/send?access_token=6ddafcada8f44f4bad4a7314c4d9bd19a895ded0a1ba1afdaff5dd01a5af6781".PostJsonAsync(new + { + msgtype = "markdown", + markdown = new + { + title = "异常通知", + text = $"dotpan,{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT")}异常\n > 来源:Dplphin.ExamPictureCut\n > 详情:" + text, + } + }).ReceiveString(); + } +} diff --git a/Dolphin.ExamPictureCut.HttpApi.Host/Dockerfile b/Dolphin.ExamPictureCut.HttpApi.Host/Dockerfile index 7e9c175..41d774d 100644 --- a/Dolphin.ExamPictureCut.HttpApi.Host/Dockerfile +++ b/Dolphin.ExamPictureCut.HttpApi.Host/Dockerfile @@ -1,4 +1,4 @@ -FROM mcr.microsoft.com/dotnet/aspnet:8.0 +FROM dotnet/aspnet:8.0 ENV TZ=Asia/Shanghai \ DEBIAN_FRONTEND=noninteractive diff --git a/Dolphin.ExamPictureCut.HttpApi.Host/web.config b/Dolphin.ExamPictureCut.HttpApi.Host/web.config deleted file mode 100644 index 050e7f2..0000000 --- a/Dolphin.ExamPictureCut.HttpApi.Host/web.config +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/docker-compose.yaml b/docker-swarm.yaml similarity index 91% rename from docker-compose.yaml rename to docker-swarm.yaml index 8b74a02..40cd337 100644 --- a/docker-compose.yaml +++ b/docker-swarm.yaml @@ -12,4 +12,4 @@ services: # - 9925:80 deploy: mode: replicated - replicas: 1 + replicas: ${replicas:-1}