@go-mailer/vertebra 3.1.2 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,37 +1,36 @@
1
- class QueueManager {
1
+ class QueueProcessor {
2
2
  constructor () {
3
- this.queues = new Map()
3
+ this.queue = []
4
+ this.is_processing = false
4
5
  }
5
6
 
6
- queue_is_free (queue_name) {
7
- const queue = this.queues.get(queue_name)
8
- if (queue.current_size === queue.max_size) return false
9
- queue.current_size = queue.current_size + 1
10
- this.queues.set(queue_name, queue)
11
- return true
7
+ enqueue (message, handler = (payload) => {}, onComplete = (message, result) => {}) {
8
+ this.queue.push(message)
9
+ if (!this.is_processing) {
10
+ this.process(handler, onComplete)
11
+ }
12
12
  }
13
13
 
14
- dequeue (queue_name, channel = null) {
15
- const queue = this.queues.get(queue_name)
16
- queue.current_size = queue.current_size - 1
17
- this.queues.set(queue_name, queue)
14
+ async process (handler = (payload) => {}, onComplete = (message, result) => {}) {
15
+ this.is_processing = true
18
16
 
19
- if (!channel) return
20
- if (queue.current_size === 0) {
21
- channel.recover()
17
+ while (this.queue.length) {
18
+ const message = this.queue.shift()
19
+ const { content } = message
20
+ const payload = JSON.parse(Buffer.from(content).toString('utf-8'))
21
+ const result = await handler(payload)
22
+ onComplete(message, result)
22
23
  }
24
+ this.is_processing = false
23
25
  }
24
26
 
25
- initialize (queue_name, max_size = 100) {
26
- this.queues.set(queue_name, {
27
- current_size: 0,
28
- max_size
29
- })
27
+ requeue (message) {
28
+ this.queue.push(message)
30
29
  }
31
30
 
32
- size (queue_name) {
33
- return this.queues.get(queue_name).current_size
31
+ size () {
32
+ return this.queue.length
34
33
  }
35
34
  }
36
35
 
37
- module.exports = new QueueManager()
36
+ module.exports = QueueProcessor
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@go-mailer/vertebra",
3
- "version": "3.1.2",
3
+ "version": "3.2.0",
4
4
  "description": "Go-Mailer vertebra",
5
5
  "main": "index.js",
6
6
  "scripts": {