deno.com

Deno 佇列

在 Github 上編輯

警告:這是一個不穩定的 API,隨時可能變更或移除。
Deno 佇列基於 Deno KV 建構,讓您能夠卸載應用程式的部分工作,或排程未來要執行的工作以非同步方式執行。這是為您的專案新增可擴展背景處理的簡單方法。

描述您的訊息物件的形狀 (選填)
interface Notification {
  forUser: string;
  body: string;
}
取得 KV 實例的參考
const kv = await Deno.openKv();
建立通知物件
const message: Notification = {
  forUser: "alovelace",
  body: "You've got mail!",
};
將訊息加入佇列以立即傳遞
await kv.enqueue(message);
將訊息加入佇列以在 3 天後傳遞
const delay = 1000 * 60 * 60 * 24 * 3;
await kv.enqueue(message, { delay });
透過設定金鑰來檢索未傳送的訊息
const backupKey = ["failed_notifications", "alovelace", Date.now()];
await kv.enqueue(message, { keysIfUndelivered: [backupKey] });
... 災難發生 ... 取得未傳送的訊息
const r = await kv.get<Notification>(backupKey);
console.log("Found failed notification for:", r.value?.forUser);
監聽並處理訊息。
kv.listenQueue((msg: Notification) => {
  console.log(`Dear ${msg.forUser}: ${msg.body}`);
});

使用 Deno CLI 在本機執行此範例

deno run --unstable-kv https://deno-docs.dev.org.tw/examples/scripts/queues.ts

您找到需要的資訊了嗎?

隱私權政策