Skip to content

Commit 8ba26f0

Browse files
authored
Merge pull request #3625 from Dokploy/2842-deployment-stuck-with-remote-server
2842 deployment stuck with remote server
2 parents c0328ab + 9bc88eb commit 8ba26f0

File tree

3 files changed

+30
-0
lines changed

3 files changed

+30
-0
lines changed

apps/dokploy/components/dashboard/settings/servers/actions/show-dokploy-actions.tsx

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ export const ShowDokployActions = () => {
2323

2424
const { mutateAsync: cleanRedis } = api.settings.cleanRedis.useMutation();
2525
const { mutateAsync: reloadRedis } = api.settings.reloadRedis.useMutation();
26+
const { mutateAsync: cleanAllDeploymentQueue } =
27+
api.settings.cleanAllDeploymentQueue.useMutation();
2628

2729
return (
2830
<DropdownMenu>
@@ -87,6 +89,21 @@ export const ShowDokployActions = () => {
8789
Clean Redis
8890
</DropdownMenuItem>
8991

92+
<DropdownMenuItem
93+
className="cursor-pointer"
94+
onClick={async () => {
95+
await cleanAllDeploymentQueue()
96+
.then(() => {
97+
toast.success("Deployment queue cleaned");
98+
})
99+
.catch(() => {
100+
toast.error("Error cleaning deployment queue");
101+
});
102+
}}
103+
>
104+
Clean all deployment queue
105+
</DropdownMenuItem>
106+
90107
<DropdownMenuItem
91108
className="cursor-pointer"
92109
onClick={async () => {

apps/dokploy/server/api/routers/settings.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ import {
6464
projects,
6565
server,
6666
} from "@/server/db/schema";
67+
import { cleanAllDeploymentQueue } from "@/server/queues/queueSetup";
6768
import { removeJob, schedule } from "@/server/utils/backup";
6869
import packageInfo from "../../../package.json";
6970
import { appRouter } from "../root";
@@ -115,6 +116,12 @@ export const settingsRouter = createTRPCRouter({
115116

116117
return true;
117118
}),
119+
cleanAllDeploymentQueue: adminProcedure.mutation(async () => {
120+
if (IS_CLOUD) {
121+
return true;
122+
}
123+
return cleanAllDeploymentQueue();
124+
}),
118125
reloadTraefik: adminProcedure
119126
.input(apiServerSchema)
120127
.mutation(async ({ input }) => {

apps/dokploy/server/queues/queueSetup.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import {
33
execAsyncRemote,
44
} from "@dokploy/server/utils/process/execAsync";
55
import { Queue } from "bullmq";
6+
import { deploymentWorker } from "./deployments-queue";
67
import { redisConfig } from "./redis-connection";
78

89
const myQueue = new Queue("deployments", {
@@ -44,6 +45,11 @@ export const cleanQueuesByApplication = async (applicationId: string) => {
4445
}
4546
};
4647

48+
export const cleanAllDeploymentQueue = async () => {
49+
deploymentWorker.cancelAllJobs("User requested cancellation");
50+
return true;
51+
};
52+
4753
export const cleanQueuesByCompose = async (composeId: string) => {
4854
const jobs = await myQueue.getJobs(["waiting", "delayed"]);
4955

0 commit comments

Comments
 (0)