qdone 2.0.44-alpha → 2.0.45-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,9 @@ 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
+ this.jobsByMessageId[failed.Id].status = 'failed';
169
169
  }
170
170
  }
171
171
  if (result.Successful) {
@@ -206,9 +206,9 @@ class JobExecutor {
206
206
  if (result.Failed) {
207
207
  console.error('FAILED_MESSAGES', result.Failed);
208
208
  for (const failed of result.Failed) {
209
- console.error('FAILED_TO_DELETE_JOB', this.jobsByMessageId[failed.Id]);
209
+ console.error('FAILED_TO_DELETE_JOB', { failedEntry: failed, job: this.jobsByMessageId[failed.Id] });
210
210
  // ensure that we clean this one up so it doesn't generate api calls
211
- this.jobsbymessageid[failed.Id].status = 'failed';
211
+ this.jobsByMessageId[failed.Id].status = 'failed';
212
212
  }
213
213
  }
214
214
  if (result.Successful) {
@@ -221,7 +221,7 @@ class JobExecutor {
221
221
  console.log(JSON.stringify({ event: 'DELETE_MESSAGES', timestamp: start, count, qrl }));
222
222
  }
223
223
  // 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)));
224
+ 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
225
  }
226
226
  debug('DeleteMessageBatch returned', result);
227
227
  // 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.45-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
+ 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
+ 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
  )