qdone 2.0.44-alpha → 2.0.46-alpha

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.
@@ -18,9 +18,9 @@ const maxJobSeconds = 12 * 60 * 60;
18
18
  class JobExecutor {
19
19
  constructor(opt) {
20
20
  this.opt = opt;
21
- this.jobs = [];
22
- this.jobsByMessageId = {};
23
- this.jobsByQueue = new Map();
21
+ this.jobs = []; // for full traversals
22
+ this.jobsByMessageId = {}; // for looking up via message id
23
+ this.jobsByQueue = new Map(); // for looking up via queue name
24
24
  this.stats = {
25
25
  activeJobs: 0,
26
26
  waitingJobs: 0,
@@ -163,9 +163,10 @@ class JobExecutor {
163
163
  if (result.Failed) {
164
164
  console.error('FAILED_MESSAGES', result.Failed);
165
165
  for (const failed of result.Failed) {
166
- console.error('FAILED_TO_EXTEND_JOB', this.jobsByMessageId[failed.Id]);
166
+ console.error('FAILED_TO_EXTEND_JOB', { failedEntry: failed, job: this.jobsByMessageId[failed.Id] });
167
167
  // ensure that we clean this one up so it doesn't generate api calls
168
- this.jobsbymessageid[failed.Id].status = 'failed';
168
+ if (this.jobsByMessageId[failed.Id])
169
+ this.jobsByMessageId[failed.Id].status = 'failed';
169
170
  }
170
171
  }
171
172
  if (result.Successful) {
@@ -206,9 +207,10 @@ class JobExecutor {
206
207
  if (result.Failed) {
207
208
  console.error('FAILED_MESSAGES', result.Failed);
208
209
  for (const failed of result.Failed) {
209
- console.error('FAILED_TO_DELETE_JOB', this.jobsByMessageId[failed.Id]);
210
+ console.error('FAILED_TO_DELETE_JOB', { failedEntry: failed, job: this.jobsByMessageId[failed.Id] });
210
211
  // ensure that we clean this one up so it doesn't generate api calls
211
- this.jobsbymessageid[failed.Id].status = 'failed';
212
+ if (this.jobsByMessageId[failed.Id])
213
+ this.jobsByMessageId[failed.Id].status = 'failed';
212
214
  }
213
215
  }
214
216
  if (result.Successful) {
@@ -221,7 +223,7 @@ class JobExecutor {
221
223
  console.log(JSON.stringify({ event: 'DELETE_MESSAGES', timestamp: start, count, qrl }));
222
224
  }
223
225
  // Mark batch as processed for dedup
224
- await Promise.all(result.Successful.map(e => (0, dedup_js_1.dedupSuccessfullyProcessed)(this.jobsByMessageId[e.Id].message, this.opt)));
226
+ await Promise.all(result.Successful.filter(e => this.jobsByMessageId[e.Id]).map(e => (0, dedup_js_1.dedupSuccessfullyProcessed)(this.jobsByMessageId[e.Id].message, this.opt)));
225
227
  }
226
228
  debug('DeleteMessageBatch returned', result);
227
229
  // TODO Sentry
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "qdone",
3
- "version": "2.0.44-alpha",
3
+ "version": "2.0.46-alpha",
4
4
  "description": "A distributed scheduler for SQS",
5
5
  "type": "module",
6
6
  "main": "./index.js",
@@ -18,9 +18,9 @@ const maxJobSeconds = 12 * 60 * 60
18
18
  export class JobExecutor {
19
19
  constructor (opt) {
20
20
  this.opt = opt
21
- this.jobs = []
22
- this.jobsByMessageId = {}
23
- this.jobsByQueue = new Map()
21
+ this.jobs = [] // for full traversals
22
+ this.jobsByMessageId = {} // for looking up via message id
23
+ this.jobsByQueue = new Map() // for looking up via queue name
24
24
  this.stats = {
25
25
  activeJobs: 0,
26
26
  waitingJobs: 0,
@@ -167,9 +167,9 @@ export class JobExecutor {
167
167
  if (result.Failed) {
168
168
  console.error('FAILED_MESSAGES', result.Failed)
169
169
  for (const failed of result.Failed) {
170
- console.error('FAILED_TO_EXTEND_JOB', this.jobsByMessageId[failed.Id])
170
+ console.error('FAILED_TO_EXTEND_JOB', { failedEntry: failed, job: this.jobsByMessageId[failed.Id] })
171
171
  // ensure that we clean this one up so it doesn't generate api calls
172
- this.jobsbymessageid[failed.Id].status = 'failed'
172
+ if (this.jobsByMessageId[failed.Id]) this.jobsByMessageId[failed.Id].status = 'failed'
173
173
  }
174
174
  }
175
175
  if (result.Successful) {
@@ -211,9 +211,9 @@ export class JobExecutor {
211
211
  if (result.Failed) {
212
212
  console.error('FAILED_MESSAGES', result.Failed)
213
213
  for (const failed of result.Failed) {
214
- console.error('FAILED_TO_DELETE_JOB', this.jobsByMessageId[failed.Id])
214
+ console.error('FAILED_TO_DELETE_JOB', { failedEntry: failed, job: this.jobsByMessageId[failed.Id] })
215
215
  // ensure that we clean this one up so it doesn't generate api calls
216
- this.jobsbymessageid[failed.Id].status = 'failed'
216
+ if (this.jobsByMessageId[failed.Id]) this.jobsByMessageId[failed.Id].status = 'failed'
217
217
  }
218
218
  }
219
219
  if (result.Successful) {
@@ -227,7 +227,7 @@ export class JobExecutor {
227
227
 
228
228
  // Mark batch as processed for dedup
229
229
  await Promise.all(
230
- result.Successful.map(
230
+ result.Successful.filter(e => this.jobsByMessageId[e.Id]).map(
231
231
  e => dedupSuccessfullyProcessed(this.jobsByMessageId[e.Id].message, this.opt)
232
232
  )
233
233
  )