keuss 1.6.10 → 1.6.11

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.
Files changed (198) hide show
  1. package/Pipeline/Queue.js +12 -2
  2. package/Queue.js +15 -7
  3. package/TODO +1 -0
  4. package/package.json +1 -1
  5. package/test/backends_deadletter.js +10 -1
  6. package/.nyc_output/ad035de4-a3d3-451b-b2ad-402e8ed517b8.json +0 -1
  7. package/.nyc_output/c8683d6c-e7e6-496b-ab0d-1ff730837d08.json +0 -1
  8. package/.nyc_output/processinfo/ad035de4-a3d3-451b-b2ad-402e8ed517b8.json +0 -1
  9. package/.nyc_output/processinfo/c8683d6c-e7e6-496b-ab0d-1ff730837d08.json +0 -1
  10. package/.nyc_output/processinfo/index.json +0 -1
  11. package/coverage/base.css +0 -224
  12. package/coverage/block-navigation.js +0 -79
  13. package/coverage/index.html +0 -162
  14. package/coverage/keuss/Pipeline/BaseLink.js.html +0 -636
  15. package/coverage/keuss/Pipeline/Builder.js.html +0 -615
  16. package/coverage/keuss/Pipeline/ChoiceLink.js.html +0 -294
  17. package/coverage/keuss/Pipeline/DirectLink.js.html +0 -231
  18. package/coverage/keuss/Pipeline/Pipeline.js.html +0 -258
  19. package/coverage/keuss/Pipeline/Queue.js.html +0 -939
  20. package/coverage/keuss/Pipeline/Sink.js.html +0 -147
  21. package/coverage/keuss/Pipeline/index.html +0 -175
  22. package/coverage/keuss/QFactory-MongoDB-defaults.js.html +0 -219
  23. package/coverage/keuss/QFactory.js.html +0 -459
  24. package/coverage/keuss/Queue.js.html +0 -2274
  25. package/coverage/keuss/Signal.js.html +0 -312
  26. package/coverage/keuss/Stats.js.html +0 -174
  27. package/coverage/keuss/backends/bucket-mongo-safe.js.html +0 -2952
  28. package/coverage/keuss/backends/bucket-mongo.js.html +0 -1167
  29. package/coverage/keuss/backends/index.html +0 -175
  30. package/coverage/keuss/backends/mongo.js.html +0 -897
  31. package/coverage/keuss/backends/pl-mongo.js.html +0 -723
  32. package/coverage/keuss/backends/ps-mongo.js.html +0 -1038
  33. package/coverage/keuss/backends/redis-list.js.html +0 -513
  34. package/coverage/keuss/backends/redis-oq.js.html +0 -543
  35. package/coverage/keuss/bench/all-mongo.js.html +0 -393
  36. package/coverage/keuss/bench/index.html +0 -149
  37. package/coverage/keuss/bench/multi-q.js.html +0 -324
  38. package/coverage/keuss/bench/redis-oq-consumer-producer.js.html +0 -225
  39. package/coverage/keuss/bench/redis-oq-consumer.js.html +0 -189
  40. package/coverage/keuss/bench/redis-oq-producer.js.html +0 -198
  41. package/coverage/keuss/docusaurus/.docusaurus/client-modules.js.html +0 -93
  42. package/coverage/keuss/docusaurus/.docusaurus/docusaurus.config.js.html +0 -402
  43. package/coverage/keuss/docusaurus/.docusaurus/index.html +0 -136
  44. package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/01a85c17.4e57aa0a.js.html +0 -69
  45. package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/09d5ad39.3009117f.js.html +0 -69
  46. package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/1.12cf3eb8.js.html +0 -69
  47. package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/12559443.a244228c.js.html +0 -69
  48. package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/17896441.5efb3558.js.html +0 -69
  49. package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/1be78505.f9c04817.js.html +0 -69
  50. package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/2.4e2dc02c.js.html +0 -72
  51. package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/3.d549a05d.js.html +0 -69
  52. package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/36.db0e809a.js.html +0 -69
  53. package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/37637b3c.28c0900b.js.html +0 -69
  54. package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/3d8d21df.2228b429.js.html +0 -69
  55. package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/45a5cd1f.951da354.js.html +0 -69
  56. package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/52c38f7a.785707bc.js.html +0 -69
  57. package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/57ffbe3d.04d3e53e.js.html +0 -69
  58. package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/5f7c35e9.2fa77599.js.html +0 -69
  59. package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/6299bd84.ec197a3e.js.html +0 -69
  60. package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/6875c492.cdf3e939.js.html +0 -69
  61. package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/6beec1d2.6873e708.js.html +0 -69
  62. package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/7b786ad4.bbce08e6.js.html +0 -69
  63. package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/8070e160.400a4e57.js.html +0 -69
  64. package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/88c93c54.e868a433.js.html +0 -69
  65. package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/8d3e6f9e.aadf6d32.js.html +0 -69
  66. package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/9bc74468.516633c5.js.html +0 -69
  67. package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/9beb87c2.71e3744d.js.html +0 -69
  68. package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/a3732fac.b0f98dbf.js.html +0 -69
  69. package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/a6aa9e1f.6ac55e6c.js.html +0 -69
  70. package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/baf0d4a2.b50efd2d.js.html +0 -69
  71. package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/c4f5d8e4.e9dfd999.js.html +0 -69
  72. package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/ccc49370.1831890b.js.html +0 -69
  73. package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/d4942345.7d23b349.js.html +0 -69
  74. package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/e2244795.4ea3d168.js.html +0 -69
  75. package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/e64fe266.308265e8.js.html +0 -69
  76. package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/f78725cc.5f3e115d.js.html +0 -69
  77. package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/fa8d8063.2312a332.js.html +0 -69
  78. package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/index.html +0 -565
  79. package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/main.66f1008c.js.html +0 -72
  80. package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/runtime~main.7d73b048.js.html +0 -69
  81. package/coverage/keuss/docusaurus/.docusaurus/keuss-gh-pages/styles.b5ee3016.js.html +0 -69
  82. package/coverage/keuss/docusaurus/.docusaurus/registry.js.html +0 -165
  83. package/coverage/keuss/docusaurus/.docusaurus/routes.js.html +0 -447
  84. package/coverage/keuss/docusaurus/build/01a85c17.4e57aa0a.js.html +0 -69
  85. package/coverage/keuss/docusaurus/build/09d5ad39.3009117f.js.html +0 -69
  86. package/coverage/keuss/docusaurus/build/1.12cf3eb8.js.html +0 -69
  87. package/coverage/keuss/docusaurus/build/12559443.a244228c.js.html +0 -69
  88. package/coverage/keuss/docusaurus/build/17896441.5efb3558.js.html +0 -69
  89. package/coverage/keuss/docusaurus/build/1be78505.f9c04817.js.html +0 -69
  90. package/coverage/keuss/docusaurus/build/2.4e2dc02c.js.html +0 -72
  91. package/coverage/keuss/docusaurus/build/3.d549a05d.js.html +0 -69
  92. package/coverage/keuss/docusaurus/build/36.db0e809a.js.html +0 -69
  93. package/coverage/keuss/docusaurus/build/37637b3c.28c0900b.js.html +0 -69
  94. package/coverage/keuss/docusaurus/build/3d8d21df.2228b429.js.html +0 -69
  95. package/coverage/keuss/docusaurus/build/45a5cd1f.951da354.js.html +0 -69
  96. package/coverage/keuss/docusaurus/build/52c38f7a.785707bc.js.html +0 -69
  97. package/coverage/keuss/docusaurus/build/57ffbe3d.04d3e53e.js.html +0 -69
  98. package/coverage/keuss/docusaurus/build/5f7c35e9.2fa77599.js.html +0 -69
  99. package/coverage/keuss/docusaurus/build/6299bd84.ec197a3e.js.html +0 -69
  100. package/coverage/keuss/docusaurus/build/6875c492.cdf3e939.js.html +0 -69
  101. package/coverage/keuss/docusaurus/build/6beec1d2.6873e708.js.html +0 -69
  102. package/coverage/keuss/docusaurus/build/7b786ad4.bbce08e6.js.html +0 -69
  103. package/coverage/keuss/docusaurus/build/8070e160.400a4e57.js.html +0 -69
  104. package/coverage/keuss/docusaurus/build/88c93c54.e868a433.js.html +0 -69
  105. package/coverage/keuss/docusaurus/build/8d3e6f9e.aadf6d32.js.html +0 -69
  106. package/coverage/keuss/docusaurus/build/9bc74468.516633c5.js.html +0 -69
  107. package/coverage/keuss/docusaurus/build/9beb87c2.71e3744d.js.html +0 -69
  108. package/coverage/keuss/docusaurus/build/a3732fac.b0f98dbf.js.html +0 -69
  109. package/coverage/keuss/docusaurus/build/a6aa9e1f.6ac55e6c.js.html +0 -69
  110. package/coverage/keuss/docusaurus/build/baf0d4a2.b50efd2d.js.html +0 -69
  111. package/coverage/keuss/docusaurus/build/c4f5d8e4.e9dfd999.js.html +0 -69
  112. package/coverage/keuss/docusaurus/build/ccc49370.1831890b.js.html +0 -69
  113. package/coverage/keuss/docusaurus/build/d4942345.7d23b349.js.html +0 -69
  114. package/coverage/keuss/docusaurus/build/e2244795.4ea3d168.js.html +0 -69
  115. package/coverage/keuss/docusaurus/build/e64fe266.308265e8.js.html +0 -69
  116. package/coverage/keuss/docusaurus/build/f78725cc.5f3e115d.js.html +0 -69
  117. package/coverage/keuss/docusaurus/build/fa8d8063.2312a332.js.html +0 -69
  118. package/coverage/keuss/docusaurus/build/index.html +0 -565
  119. package/coverage/keuss/docusaurus/build/main.66f1008c.js.html +0 -72
  120. package/coverage/keuss/docusaurus/build/runtime~main.7d73b048.js.html +0 -69
  121. package/coverage/keuss/docusaurus/build/styles.b5ee3016.js.html +0 -69
  122. package/coverage/keuss/docusaurus/docusaurus.config.js.html +0 -360
  123. package/coverage/keuss/docusaurus/index.html +0 -110
  124. package/coverage/keuss/docusaurus/sidebars.js.html +0 -96
  125. package/coverage/keuss/docusaurus/src/pages/index.html +0 -97
  126. package/coverage/keuss/docusaurus/src/pages/index.js.html +0 -450
  127. package/coverage/keuss/examples/pipelines/builder/index.html +0 -97
  128. package/coverage/keuss/examples/pipelines/builder/index.js.html +0 -450
  129. package/coverage/keuss/examples/pipelines/simplest/index.html +0 -97
  130. package/coverage/keuss/examples/pipelines/simplest/index.js.html +0 -183
  131. package/coverage/keuss/examples/pipelines/simulation-fork/index.html +0 -97
  132. package/coverage/keuss/examples/pipelines/simulation-fork/index.js.html +0 -414
  133. package/coverage/keuss/examples/snippets/01-simplest-pop-push.js.html +0 -195
  134. package/coverage/keuss/examples/snippets/02-simplest-reserve-rollback-commit.js.html +0 -201
  135. package/coverage/keuss/examples/snippets/03-simplest-producer-consumer-loops.js.html +0 -300
  136. package/coverage/keuss/examples/snippets/04-bucket-mongo-safe-insert-reserve-commit.js.html +0 -303
  137. package/coverage/keuss/examples/snippets/05-insert-reserve-rollback-deadletter.js.html +0 -384
  138. package/coverage/keuss/examples/snippets/06-random-consumer-producer.js.html +0 -879
  139. package/coverage/keuss/examples/snippets/index.html +0 -188
  140. package/coverage/keuss/examples/snippets/redislabs-consumer-producer.js.html +0 -201
  141. package/coverage/keuss/examples/snippets/with-redis-stats-and-signaller-consumer-producer.js.html +0 -222
  142. package/coverage/keuss/examples/webhooks/app.js.html +0 -279
  143. package/coverage/keuss/examples/webhooks/consumer.js.html +0 -363
  144. package/coverage/keuss/examples/webhooks/index.html +0 -123
  145. package/coverage/keuss/examples/webhooks/index.js.html +0 -234
  146. package/coverage/keuss/index.html +0 -149
  147. package/coverage/keuss/playground/index.html +0 -136
  148. package/coverage/keuss/playground/pl-rollback.js.html +0 -234
  149. package/coverage/keuss/playground/pl1.js.html +0 -291
  150. package/coverage/keuss/playground/q1.js.html +0 -168
  151. package/coverage/keuss/playground/simple-pl.js.html +0 -195
  152. package/coverage/keuss/signal/index.html +0 -123
  153. package/coverage/keuss/signal/local.js.html +0 -306
  154. package/coverage/keuss/signal/mongo-capped.js.html +0 -378
  155. package/coverage/keuss/signal/redis-pubsub.js.html +0 -399
  156. package/coverage/keuss/stats/index.html +0 -123
  157. package/coverage/keuss/stats/mem.js.html +0 -519
  158. package/coverage/keuss/stats/mongo.js.html +0 -930
  159. package/coverage/keuss/stats/redis.js.html +0 -894
  160. package/coverage/keuss/utils/RedisConn.js.html +0 -150
  161. package/coverage/keuss/utils/RedisOrderedQueue.js.html +0 -864
  162. package/coverage/keuss/utils/index.html +0 -110
  163. package/coverage/prettify.css +0 -1
  164. package/coverage/prettify.js +0 -2
  165. package/coverage/sort-arrow-sprite.png +0 -0
  166. package/coverage/sorter.js +0 -170
  167. package/docusaurus/README.md +0 -33
  168. package/docusaurus/babel.config.js +0 -3
  169. package/docusaurus/blog/2020-08-04-welcome.md +0 -10
  170. package/docusaurus/docs/about.md +0 -14
  171. package/docusaurus/docs/api/factory.md +0 -102
  172. package/docusaurus/docs/api/queue.md +0 -247
  173. package/docusaurus/docs/api/signal.md +0 -38
  174. package/docusaurus/docs/api/stats.md +0 -37
  175. package/docusaurus/docs/changelog.md +0 -51
  176. package/docusaurus/docs/concepts.md +0 -116
  177. package/docusaurus/docs/examples.md +0 -10
  178. package/docusaurus/docs/quickstart.md +0 -195
  179. package/docusaurus/docs/style-guide.md +0 -202
  180. package/docusaurus/docs/usage/buckets.md +0 -43
  181. package/docusaurus/docs/usage/no-signaller.md +0 -16
  182. package/docusaurus/docs/usage/pipelines/about.md +0 -128
  183. package/docusaurus/docs/usage/pipelines/building.md +0 -158
  184. package/docusaurus/docs/usage/pipelines/examples.md +0 -10
  185. package/docusaurus/docs/usage/pipelines/processors.md +0 -187
  186. package/docusaurus/docs/usage/putting-all-together.md +0 -153
  187. package/docusaurus/docs/usage/redis-conns.md +0 -70
  188. package/docusaurus/docs/usage/shutdown.md +0 -11
  189. package/docusaurus/docusaurus.config.js +0 -96
  190. package/docusaurus/package.json +0 -33
  191. package/docusaurus/sidebars.js +0 -44
  192. package/docusaurus/src/css/custom.css +0 -25
  193. package/docusaurus/src/pages/index.js +0 -127
  194. package/docusaurus/src/pages/styles.module.css +0 -37
  195. package/docusaurus/static/.nojekyll +0 -0
  196. package/docusaurus/static/img/favicon.ico +0 -0
  197. package/docusaurus/static/img/logo.svg +0 -1
  198. package/docusaurus/yarn.lock +0 -8384
package/Pipeline/Queue.js CHANGED
@@ -167,6 +167,10 @@ class PipelinedMongoQueue extends Queue {
167
167
  this._embed_update_for_payload (upd, opts.update);
168
168
  }
169
169
 
170
+ if (opts.hdrs) {
171
+ _.each (opts.hdrs, (v, k) => upd.$set['hdrs.' + k] = v);
172
+ }
173
+
170
174
  this._col.updateOne (q, upd, {}, (err, result) => {
171
175
  if (err) return callback (err);
172
176
  callback (null, result && (result.modifiedCount == 1));
@@ -274,9 +278,15 @@ class PipelinedMongoQueue extends Queue {
274
278
 
275
279
 
276
280
  //////////////////////////////////////////////
277
- // redefnition
281
+ // redefinition from Queue
278
282
  _move_to_deadletter (obj, cb) {
279
- this.pl_step (obj._id, this._factory.deadletter_queue (), {}, (err, res) => {
283
+ const hdrs = {
284
+ 'x-dl-from-queue': this.name (),
285
+ 'x-dl-t': new Date().toISOString (),
286
+ 'x-dl-tries': obj.tries
287
+ };
288
+
289
+ this.pl_step (obj._id, this._factory.deadletter_queue (), {hdrs}, (err, res) => {
280
290
  if (err) return cb (err);
281
291
  this._stats.incr ('get');
282
292
  this._factory.deadletter_queue ()._stats.incr ('put');
package/Queue.js CHANGED
@@ -433,14 +433,14 @@ class Queue {
433
433
  let id = (obj._id ? obj._id : obj);
434
434
 
435
435
  if (
436
- (obj.tries) &&
437
- (this._factory.deadletter_queue ()) &&
438
- (this._factory.max_ko ()) &&
439
- (obj.tries > this._factory.max_ko ())
436
+ (obj.tries) && // only if we got tries
437
+ (this._factory.deadletter_queue ()) && // AND the factory has a deadletter queue
438
+ (this._factory.max_ko ()) && // AND thee's a max ko attempts
439
+ (obj.tries > this._factory.max_ko ()) && // AND we got enough tries
440
+ (this.name () != '__deadletter__') // and this queue is not deadletter already
440
441
  ) {
441
442
  debug ('%s: too many retries (%d), moving to deadletter', obj._id, obj.tries);
442
443
  this._move_to_deadletter (obj, cb);
443
- // TODO add from-what-queue to deadletter elements
444
444
  }
445
445
  else {
446
446
  this.rollback (id, next_t, (err, res) => {
@@ -710,15 +710,23 @@ class Queue {
710
710
  /////////////////////////////////////////////
711
711
  _move_to_deadletter (obj, cb) {
712
712
  // commit and move to deadletter
713
- // ALSO NOT IN deadletter queue (to void loop)
714
713
  // commit element in origin queue, push in deadletter afterwards
714
+ const opts = {
715
+ hdrs: _.clone (obj.hdrs || {})
716
+ };
717
+
718
+ // add some extra x-dl-* headers
719
+ opts.hdrs['x-dl-from-queue'] = this.name ();
720
+ opts.hdrs['x-dl-t'] = new Date().toISOString ();
721
+ opts.hdrs['x-dl-tries'] = obj.tries;
722
+
715
723
  this.commit (obj._id, err => {
716
724
  if (err) {
717
725
  debug ('while committing %s prior to moving to deadletter: %j', obj._id, err);
718
726
  return cb (err);
719
727
  }
720
728
 
721
- this._factory.deadletter_queue ().push (obj.payload, (err, res) => {
729
+ this._factory.deadletter_queue ().push (obj.payload, opts, (err, res) => {
722
730
  if (err) {
723
731
  debug ('while moving %s to deadletter: %j', obj._id, err);
724
732
  return cb (err, 'deadletter');
package/TODO CHANGED
@@ -1,5 +1,6 @@
1
1
  bugs
2
2
  -------------------------------------------------------------
3
+ * deadlettering on all backend but mongo-pipeline does not preserve hdrs
3
4
 
4
5
  prio 1
5
6
  -------------------------------------------------------------
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "keuss",
3
- "version": "1.6.10",
3
+ "version": "1.6.11",
4
4
  "keywords": [
5
5
  "queue",
6
6
  "persistent",
@@ -111,6 +111,8 @@ function release_mq_factory (q, factory, cb) {
111
111
  pl: 'twetrwte'
112
112
  };
113
113
 
114
+ const hdrs = {aaa: 'qw', bbb: '666'};
115
+
114
116
  async.waterfall ([
115
117
  cb => get_mq_factory (MQ, factory_opts, cb),
116
118
  (factory, cb) => {
@@ -120,7 +122,7 @@ function release_mq_factory (q, factory, cb) {
120
122
 
121
123
  async.race ([
122
124
  cb => async.series([
123
- cb => q.push (pl, cb),
125
+ cb => q.push (pl, {hdrs}, cb),
124
126
  cb => pop (q, stage, cb),
125
127
  cb => reject (q, stage, (err) => {tries++;cb()}),
126
128
  cb => pop (q, stage, cb),
@@ -139,6 +141,13 @@ function release_mq_factory (q, factory, cb) {
139
141
  }),
140
142
  cb => factory.deadletter_queue().pop('c2', (err, res) => {
141
143
  res.payload.should.eql (pl);
144
+ res.hdrs.should.match ({
145
+ aaa: "qw",
146
+ bbb: "666",
147
+ 'x-dl-from-queue': "test_queue_deadletter",
148
+ 'x-dl-t': /.+/,
149
+ 'x-dl-tries': 4
150
+ });
142
151
  tries.should.equal (5);
143
152
  cb (err);
144
153
  })