create-cloudflare
Version:
A CLI for creating and deploying new applications to Cloudflare.
42 lines (40 loc) • 1.78 kB
text/typescript
/**
* Welcome to Cloudflare Workers!
*
* This is a template for a Queue consumer: a Worker that can consume from a
* Queue: https://developers.cloudflare.com/queues/get-started/
*
* - Run `npm run dev` in your terminal to start a development server
* - Open a browser tab at http://localhost:8787/ to see your worker in action
* - Run `npm run deploy` to publish your worker
*
* Bind resources to your worker in `wrangler.jsonc`. After adding bindings, a type definition for the
* `Env` object can be regenerated with `npm run cf-typegen`.
*
* Learn more at https://developers.cloudflare.com/workers/
*/
export default {
// Our fetch handler is invoked on a HTTP request: we can send a message to a queue
// during (or after) a request.
// https://developers.cloudflare.com/queues/platform/javascript-apis/#producer
async fetch(req, env, ctx): Promise<Response> {
// To send a message on a queue, we need to create the queue first
// https://developers.cloudflare.com/queues/get-started/#3-create-a-queue
await env.MY_QUEUE.send({
url: req.url,
method: req.method,
headers: Object.fromEntries(req.headers),
});
return new Response('Sent message to the queue');
},
// The queue handler is invoked when a batch of messages is ready to be delivered
// https://developers.cloudflare.com/queues/platform/javascript-apis/#messagebatch
async queue(batch, env): Promise<void> {
// A queue consumer can make requests to other endpoints on the Internet,
// write to R2 object storage, query a D1 Database, and much more.
for (let message of batch.messages) {
// Process each message (we'll just log these)
console.log(`message ${message.id} processed: ${JSON.stringify(message.body)}`);
}
},
} satisfies ExportedHandler<Env, Error>;