Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix: Ensure cleared nextRunAt when saving to db #1477

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

thassiov
Copy link

@thassiov thassiov commented Aug 14, 2022

When using a mongodb client configured with the option ignoreUndefined set to true, trying to clear the property nextRunAt from a job scheduled using schedule method by setting it to undefined does not take effect as it is ignored.

After computing nextRunAt property before running the job (run.ts), the change in value is not persisted, making it always behind lastRunAt after the first execution. This makes the program run the processor very quickly and indefinitely, exhausting the CPU's capacity.

Setting the property to null at the beginning of the computation makes sure the value is properly cleared.

The following code demonstrates the issue. It creates a new mongo client, feeds it to Agenda, defines a new processor and finally tries to run it once.

Code
// SETUP
const Agenda = require('agenda');
const { MongoClient } = require('mongodb');
const { setTimeout } = require('timers/promises');

const mongoUrl = 'mongodb://localhost:27017';

// Working scenario
async function defaultMongoClient() {
  const mongoClient1 = new MongoClient(mongoUrl);
  await mongoClient1.connect();
  const db = mongoClient1.db('db');
  const agenda = new Agenda().mongo(db);
  agenda.define('run once', () => console.log('running once with default client (ignoreUndefined: false)'));
  await agenda.start();
  await agenda.schedule('in five seconds', 'run once');

  await setTimeout(7000);
  console.log('7 seconds has passed. terminating agenda instance');
  await agenda.stop();
  await db.dropDatabase();
  await mongoClient1.close();
}

// Breaking scenario
async function ignoreUndefinedMongoClient() {
  const mongoClient2 = new MongoClient(mongoUrl, { ignoreUndefined: true });
  await mongoClient2.connect();
  const db = mongoClient2.db('db');
  const agenda = new Agenda().mongo(db);
  agenda.define('run once', () => console.log('running once using `ignoreUndefined: true` as mongo client option'));
  await agenda.start();
  await agenda.schedule('in five seconds', 'run once');

  await setTimeout(7000);
  console.log('7 seconds has passed. terminating agenda instance');
  await agenda.stop();
  await db.dropDatabase();
  await mongoClient2.close();
}

(async () => {
  await defaultMongoClient();
  await ignoreUndefinedMongoClient();
})();
Program's output
running once with default client (ignoreUndefined: false)
7 seconds has passed. terminating agenda instance
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
running once using `ignoreUndefined: true` as mongo client option
7 seconds has passed. terminating agenda instance

When using a mongodb client configured with the option `ignoreUndefined`
set to `true`, trying to clear the property `nextRunAt` from a job
scheduled using `schedule` method by setting it to `undefined` does not
take effect as it is ignored.

After computing `nextRunAt` property before running the job (`run.ts`), the
change in value is not persisted, making it always behind `lastRunAt`
after the first executing. This makes the program run the processor
very quickly and indefinitely, exhausting the CPU's capacity.

Setting the property to `null` at the beginning of the computation makes
sure the value is properly cleared.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant