diff --git a/.gitea/workflows/push-dev.yaml b/.gitea/workflows/push-dev.yaml index 084ef00..fca939b 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() }} @@ -93,6 +94,7 @@ jobs: >**代码分支**: ${{ gitea.ref_name }} >**提交标识**: ${{ gitea.sha }} >**提交发起**: ${{ gitea.actor }} + >**提交信息**: ${{ gitea.event.head_commit.message }}\n " } } diff --git a/.gitea/workflows/push-master.yaml b/.gitea/workflows/push-master.yaml index 37d3760..d25da41 100644 --- a/.gitea/workflows/push-master.yaml +++ b/.gitea/workflows/push-master.yaml @@ -40,11 +40,11 @@ jobs: cd D:/marking.cut.service/publish - start Dolphin.ExamPictureCut.HttpApi.Host --URLS="http://*:30000" - start Dolphin.ExamPictureCut.HttpApi.Host --URLS="http://*:30001" - start Dolphin.ExamPictureCut.HttpApi.Host --URLS="http://*:30002" - start Dolphin.ExamPictureCut.HttpApi.Host --URLS="http://*:30003" - start Dolphin.ExamPictureCut.HttpApi.Host --URLS="http://*:30004" + start Dolphin.ExamPictureCut.HttpApi.Host.exe --URLS="http://*:30000" + start Dolphin.ExamPictureCut.HttpApi.Host.exe --URLS="http://*:30001" + start Dolphin.ExamPictureCut.HttpApi.Host.exe --URLS="http://*:30002" + start Dolphin.ExamPictureCut.HttpApi.Host.exe --URLS="http://*:30003" + start Dolphin.ExamPictureCut.HttpApi.Host.exe --URLS="http://*:30004" steps: - name: 下载源码 @@ -135,6 +135,7 @@ jobs: >**代码分支**: ${{ gitea.ref_name }} >**提交标识**: ${{ gitea.sha }} >**提交发起**: ${{ gitea.actor }} + >**提交信息**: ${{ gitea.event.head_commit.message }}\n " } } diff --git a/.gitea/workflows/push-staging.yaml b/.gitea/workflows/push-staging.yaml index 19c5179..0e5ab47 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() }} @@ -93,6 +94,7 @@ jobs: >**代码分支**: ${{ gitea.ref_name }} >**提交标识**: ${{ gitea.sha }} >**提交发起**: ${{ gitea.actor }} + >**提交信息**: ${{ gitea.event.head_commit.message }}\n " } } diff --git a/.gitea/workflows/release-version.yaml b/.gitea/workflows/release-version.yaml index 9a30b8b..c666bd5 100644 --- a/.gitea/workflows/release-version.yaml +++ b/.gitea/workflows/release-version.yaml @@ -27,11 +27,11 @@ jobs: cd D:/marking.cut.service/publish - start Dolphin.ExamPictureCut.HttpApi.Host --URLS="http://*:30000" - start Dolphin.ExamPictureCut.HttpApi.Host --URLS="http://*:30001" - start Dolphin.ExamPictureCut.HttpApi.Host --URLS="http://*:30002" - start Dolphin.ExamPictureCut.HttpApi.Host --URLS="http://*:30003" - start Dolphin.ExamPictureCut.HttpApi.Host --URLS="http://*:30004" + start Dolphin.ExamPictureCut.HttpApi.Host.exe --URLS="http://*:30000" + start Dolphin.ExamPictureCut.HttpApi.Host.exe --URLS="http://*:30001" + start Dolphin.ExamPictureCut.HttpApi.Host.exe --URLS="http://*:30002" + start Dolphin.ExamPictureCut.HttpApi.Host.exe --URLS="http://*:30003" + start Dolphin.ExamPictureCut.HttpApi.Host.exe --URLS="http://*:30004" steps: - name: 下载源码 @@ -132,6 +132,7 @@ jobs: >**代码分支**: ${{ gitea.ref_name }} >**提交标识**: ${{ gitea.sha }} >**提交发起**: ${{ gitea.actor }} + >**提交信息**: ${{ gitea.event.release.target_commitish }}\n " } } diff --git a/Dolphin.ExamPictureCut.Application/Exams/ExamManager.cs b/Dolphin.ExamPictureCut.Application/Exams/ExamManager.cs index 7464b60..efb52e0 100644 --- a/Dolphin.ExamPictureCut.Application/Exams/ExamManager.cs +++ b/Dolphin.ExamPictureCut.Application/Exams/ExamManager.cs @@ -391,8 +391,6 @@ public class ExamManager : DomainService, IExamManager var skPointMode = SKPointMode.Polygon; if (points.Length == 1) skPointMode = SKPointMode.Points; - else if (points.Length == 2) - skPointMode = SKPointMode.Lines; canvas.DrawPoints(skPointMode, points, skPaint); } @@ -445,6 +443,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}