// kira-queue/index.ts
import { createClient } from "@supabase/supabase-js";
const dailyMailQueue = async () => {
const supabase = createClient(
process.env.SUPABASE_URL!,
process.env.SUPABASE_KEY!
);
while (true) {
// 从 pgmq 队列中 pop 消息
const { data } = await supabase
.schema("pgmq_public")
.rpc("pop", { queue_name: "daily_email" });
if (data && data.length > 0) {
for (const item of data) {
const { userId } = item.message;
// 调用后端 API 发送邮件
await fetch(`${process.env.API_URL}/mail/daily`, {
method: "POST",
body: JSON.stringify({ userId }),
});
}
}
// 每 60 秒轮询
await sleep(60 * 1000);
}
};