perf: retry

pull/894/head
Ryan Wang 2023-02-28 18:27:23 +08:00
parent 21d5fbb8c3
commit d3875c6ff6
1 changed files with 21 additions and 13 deletions

View File

@ -14,11 +14,13 @@ import menu from "./setup-data/menu.json";
import menuItems from "./setup-data/menu-items.json"; import menuItems from "./setup-data/menu-items.json";
import type { import type {
Category, Category,
Plugin,
PostRequest, PostRequest,
SinglePageRequest, SinglePageRequest,
Tag, Tag,
} from "@halo-dev/api-client"; } from "@halo-dev/api-client";
import { useThemeStore } from "@/stores/theme"; import { useThemeStore } from "@/stores/theme";
import { useMutation } from "@tanstack/vue-query";
const router = useRouter(); const router = useRouter();
@ -32,6 +34,24 @@ const {
const siteTitle = ref(""); const siteTitle = ref("");
const loading = ref(false); const loading = ref(false);
const { mutate: pluginStartMutate } = useMutation({
mutationKey: ["plugin-start"],
mutationFn: async (plugin: Plugin) => {
const { data: pluginToUpdate } =
await apiClient.extension.plugin.getpluginHaloRunV1alpha1Plugin({
name: plugin.metadata.name,
});
pluginToUpdate.spec.enabled = true;
return apiClient.extension.plugin.updatepluginHaloRunV1alpha1Plugin({
name: plugin.metadata.name,
plugin: pluginToUpdate,
});
},
retry: 3,
});
const handleSubmit = async () => { const handleSubmit = async () => {
try { try {
loading.value = true; loading.value = true;
@ -88,19 +108,7 @@ const handleSubmit = async () => {
for (let i = 0; i < installPluginResponses.length; i++) { for (let i = 0; i < installPluginResponses.length; i++) {
const response = installPluginResponses[i]; const response = installPluginResponses[i];
const { data: plugin } = pluginStartMutate(response.data);
await apiClient.extension.plugin.getpluginHaloRunV1alpha1Plugin({
name: response.data.metadata.name,
});
plugin.spec.enabled = true;
await apiClient.extension.plugin.updatepluginHaloRunV1alpha1Plugin(
{
name: response.data.metadata.name as string,
plugin,
},
{ mute: true }
);
} }
} catch (error) { } catch (error) {
console.error("Failed to initialize preset data", error); console.error("Failed to initialize preset data", error);