feat: migrate to cloudflare d1 and queues

This commit is contained in:
2025-11-28 16:32:35 +08:00
parent 00e1f82d85
commit bd958fb1ab
19 changed files with 294 additions and 276 deletions

View File

@@ -1,6 +1,7 @@
import { OpenAPIHono, createRoute, z } from "@hono/zod-openapi";
import type { HonoRequest } from "hono";
import { AnilistUpdateType } from "~/libs/anilist/updateType.ts";
import { maybeScheduleNextAiringEpisode } from "~/libs/maybeScheduleNextAiringEpisode";
import { buildNewEpisodeTaskId } from "~/libs/tasks/id";
import { queueTask } from "~/libs/tasks/queueTask";
@@ -76,9 +77,9 @@ export async function updateWatchStatus(
watchStatus,
);
if (wasAdded) {
await maybeScheduleNextAiringEpisode(req, titleId);
await maybeScheduleNextAiringEpisode(titleId);
} else if (wasDeleted) {
await removeTask("new-episode", buildNewEpisodeTaskId(titleId));
await removeTask("NEW_EPISODE", buildNewEpisodeTaskId(titleId));
}
}
@@ -115,13 +116,12 @@ app.openapi(route, async (c) => {
}
await queueTask(
"anilist-updates",
"ANILIST_UPDATES",
{
deviceId,
watchStatus,
titleId,
isRetrying: true,
nameSuffix: "watch-status",
updateType: AnilistUpdateType.UpdateWatchStatus,
},
{ req: c.req, scheduleConfig: { delay: { minute: 1 } } },
);