Merge pull request #3625 from Dokploy/2842-deployment-stuck-with-remote-server

2842 deployment stuck with remote server
This commit is contained in:
Mauricio Siu
2026-02-07 01:55:45 -06:00
committed by GitHub
3 changed files with 30 additions and 0 deletions

View File

@@ -23,6 +23,8 @@ export const ShowDokployActions = () => {
const { mutateAsync: cleanRedis } = api.settings.cleanRedis.useMutation();
const { mutateAsync: reloadRedis } = api.settings.reloadRedis.useMutation();
const { mutateAsync: cleanAllDeploymentQueue } =
api.settings.cleanAllDeploymentQueue.useMutation();
return (
<DropdownMenu>
@@ -87,6 +89,21 @@ export const ShowDokployActions = () => {
Clean Redis
</DropdownMenuItem>
<DropdownMenuItem
className="cursor-pointer"
onClick={async () => {
await cleanAllDeploymentQueue()
.then(() => {
toast.success("Deployment queue cleaned");
})
.catch(() => {
toast.error("Error cleaning deployment queue");
});
}}
>
Clean all deployment queue
</DropdownMenuItem>
<DropdownMenuItem
className="cursor-pointer"
onClick={async () => {

View File

@@ -64,6 +64,7 @@ import {
projects,
server,
} from "@/server/db/schema";
import { cleanAllDeploymentQueue } from "@/server/queues/queueSetup";
import { removeJob, schedule } from "@/server/utils/backup";
import packageInfo from "../../../package.json";
import { appRouter } from "../root";
@@ -115,6 +116,12 @@ export const settingsRouter = createTRPCRouter({
return true;
}),
cleanAllDeploymentQueue: adminProcedure.mutation(async () => {
if (IS_CLOUD) {
return true;
}
return cleanAllDeploymentQueue();
}),
reloadTraefik: adminProcedure
.input(apiServerSchema)
.mutation(async ({ input }) => {

View File

@@ -3,6 +3,7 @@ import {
execAsyncRemote,
} from "@dokploy/server/utils/process/execAsync";
import { Queue } from "bullmq";
import { deploymentWorker } from "./deployments-queue";
import { redisConfig } from "./redis-connection";
const myQueue = new Queue("deployments", {
@@ -44,6 +45,11 @@ export const cleanQueuesByApplication = async (applicationId: string) => {
}
};
export const cleanAllDeploymentQueue = async () => {
deploymentWorker.cancelAllJobs("User requested cancellation");
return true;
};
export const cleanQueuesByCompose = async (composeId: string) => {
const jobs = await myQueue.getJobs(["waiting", "delayed"]);