-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconsumer.ts
More file actions
41 lines (33 loc) · 1 KB
/
consumer.ts
File metadata and controls
41 lines (33 loc) · 1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import { Consumer } from 'sqs-consumer';
import AWS from 'aws-sdk';
import config from './config'
AWS.config.update({
region: config.region,
accessKeyId: config.accessKeyId,
secretAccessKey: config.secretAccessKey
});
function timestamp() {
var today = new Date();
today.setHours(today.getHours() + 9);
return today.toISOString().replace('T', ' ').substring(0, 19);
}
const app = Consumer.create({
queueUrl: config.queueUrl,
region: config.region,
handleMessage: async (message: { MessageId: string, ReceiptHandle: string, Body: string }) => {
console.log(`[${timestamp()}] {${message.MessageId}} ${message.Body} is received!`)
// Super Awesome Messaging handling logic 🚀
console.log(`[${timestamp()}] {${message.MessageId}} is destroyed!`)
},
sqs: new AWS.SQS()
});
app.on('error', (err) => {
console.error(err.message);
});
app.on('processing_error', (err) => {
console.error(err.message);
});
app.on('timeout_error', (err) => {
console.error(err.message);
});
app.start();