D
Deno

help

deno deploy queues

Ttigawana1/2/2024
is there a special flag or setting required for queues in deno deploy , i ceated a very simple example that works locally but not on deploy
app.get('/test', async(c) => {
try {
const env = await load();
const db = await Deno.openKv();

db.listenQueue(async(msg) => {
const data = msg as { channel: string; text: string };
console.log("=== QUEUE MESSAGE === ",data);
await db.set(["test-queues", data.channel], data.text);
});

await db.enqueue({ channel: "C123456", text: "Slack message" }, {
delay: 0,
});
return c.json({
env,
})
} catch (error) {
return c.text("error with queues === "+error.message, 401);
}
})
app.get('/test', async(c) => {
try {
const env = await load();
const db = await Deno.openKv();

db.listenQueue(async(msg) => {
const data = msg as { channel: string; text: string };
console.log("=== QUEUE MESSAGE === ",data);
await db.set(["test-queues", data.channel], data.text);
});

await db.enqueue({ channel: "C123456", text: "Slack message" }, {
delay: 0,
});
return c.json({
env,
})
} catch (error) {
return c.text("error with queues === "+error.message, 401);
}
})
Ccknight1/2/2024
The docs could do with updating but the db.listenQueue must be declared at the top level of your module on Deploy for it to work.
Ttigawana1/2/2024
ohh, something like this ?
const db = await Deno.openKv();
db.listenQueue(async (msg) => {
const data = msg as { channel: string; text: string };
console.log("=== QUEUE MESSAGE === ", data);
await db.set(["test-queues", data.channel], data.text);
console.log("saved to kv ==== ",await db.get(["test-queues", data.channel]));
});

app.get('/test', async(c) => {
try {
const env = await load();
// const db = await Deno.openKv();

// db.listenQueue(async(msg) => {
// const data = msg as { channel: string; text: string };
// console.log("=== QUEUE MESSAGE === ",data);
// await db.set(["test-queues", data.channel], data.text);
// });

await db.enqueue({ channel: "C123456", text: "Slack message" }, {
delay: 0,
});
return c.json({
env,
})
} catch (error) {
return c.text("error with queues === "+error.message, 401);
}
})
const db = await Deno.openKv();
db.listenQueue(async (msg) => {
const data = msg as { channel: string; text: string };
console.log("=== QUEUE MESSAGE === ", data);
await db.set(["test-queues", data.channel], data.text);
console.log("saved to kv ==== ",await db.get(["test-queues", data.channel]));
});

app.get('/test', async(c) => {
try {
const env = await load();
// const db = await Deno.openKv();

// db.listenQueue(async(msg) => {
// const data = msg as { channel: string; text: string };
// console.log("=== QUEUE MESSAGE === ",data);
// await db.set(["test-queues", data.channel], data.text);
// });

await db.enqueue({ channel: "C123456", text: "Slack message" }, {
delay: 0,
});
return c.json({
env,
})
} catch (error) {
return c.text("error with queues === "+error.message, 401);
}
})
this too isn.t working , only locally , am i doing it wrong?

Looking for more? Join the community!