refactor: replace qstash with Google Cloud Tasks
This commit is contained in:
@@ -1,7 +1,5 @@
|
||||
import { Client } from "@upstash/qstash";
|
||||
import type { HonoRequest } from "hono";
|
||||
|
||||
import { setTitleMessage } from "~/models/titleMessages";
|
||||
import {
|
||||
addUnreleasedTitle,
|
||||
removeUnreleasedTitle,
|
||||
@@ -9,8 +7,8 @@ import {
|
||||
import type { Env } from "~/types/env";
|
||||
|
||||
import { getNextEpisodeTimeUntilAiring } from "./anilist/getNextEpisodeAiringAt";
|
||||
import { deleteMessageIdForTitle } from "./deleteMessageIdForTitle";
|
||||
import { getCurrentDomain } from "./getCurrentDomain";
|
||||
import { queueTask } from "./tasks/queueTask";
|
||||
|
||||
export async function maybeScheduleNextAiringEpisode(
|
||||
env: Env,
|
||||
@@ -26,24 +24,17 @@ export async function maybeScheduleNextAiringEpisode(
|
||||
if (!nextAiring) {
|
||||
if (status === "NOT_YET_RELEASED") {
|
||||
await addUnreleasedTitle(env, aniListId);
|
||||
} else {
|
||||
await deleteMessageIdForTitle(env, aniListId);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
const { airingAt, episode: nextEpisode } = nextAiring;
|
||||
const client = new Client({ token: env.QSTASH_TOKEN });
|
||||
|
||||
const { messageId } = await client.publishJSON({
|
||||
url: `${domain}/internal/new-episode`,
|
||||
body: { aniListId, episodeNumber: nextEpisode },
|
||||
retries: 3,
|
||||
notBefore: airingAt,
|
||||
});
|
||||
await Promise.allSettled([
|
||||
setTitleMessage(env, aniListId, messageId),
|
||||
removeUnreleasedTitle(env, aniListId),
|
||||
]);
|
||||
await queueTask(
|
||||
env,
|
||||
"new-episode",
|
||||
{ aniListId, episodeNumber: nextEpisode },
|
||||
{ req, scheduleConfig: { epochTime: airingAt } },
|
||||
);
|
||||
await removeUnreleasedTitle(env, aniListId);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user