Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
moleculer-agenda
Advanced tools
Job Scheduling Mixin for Agenda.
npm install moleculer-agenda --save
You need Mongo Database, example below use mongodb-memory-server package. You can see more example on examples directory.
// Demo: use agenda to define a job and schedule it for next 1 minute.
const { ServiceBroker } = require('moleculer');
const { MongoMemoryServer } = require('mongodb-memory-server');
const AgendaService = require('../index');
// Main routine.
(async () => {
// Create broker.
const broker = new ServiceBroker({
logger: console,
logLevel: 'debug',
});
// Create mongodb memory server.
const mongoDB = await MongoMemoryServer.create();
const mongoDBUri = mongoDB.getUri();
broker.logger.info('MongoDB started: ', mongoDBUri);
// Load my service.
broker.createService({
name: 'agenda',
mixins: [AgendaService({ db: { address: mongoDBUri } })],
jobs: [{
name: 'log',
handler: () => {
broker.logger.info(`Log me ${new Date().toISOString()}`);
},
}],
});
// Bundle it with try and catch.
try {
// Start server.
await broker.start();
// Schedule it.
await broker.call('agenda.runAt', {
when: 'in 1 minute',
name: 'log',
});
broker.logger.info('Await for 2 minutes.');
// Run for 2 minutes.
setTimeout(async () => {
await broker.stop();
await mongoDB.stop();
broker.logger.info('MongoDB is stopped.');
process.exit(0);
}, 120000);
} catch (err) {
broker.logger.error(err.message);
process.exit(1);
}
})();
runEvery
Runs job name at the given interval
Property | Type | Default | Description |
---|---|---|---|
interval | String | required | Run every X interval |
name | String | Array<string> | required | Job name or list of job name to schedule every X interval. |
data | Any | - | Optional data to run for job |
options | Agenda.JobOptions | - | Optional options to run job. |
runAt
Schedules a job to run name once at a given time.
Property | Type | Default | Description |
---|---|---|---|
when | String | required | When the job will run |
name | String | Array<string> | required | Job name or list of job name to schedule every X interval. |
data | Any | - | Optional data to run for job |
runNow
Schedules a job to run name once immediately.
Property | Type | Default | Description |
---|---|---|---|
name | String | required | Job name to run. |
data | Any | - | Optional data to run for job |
runDisable
Disables any job name, preventing job from being run.
Property | Type | Default | Description |
---|---|---|---|
name | String | required | Job name to disable. |
runEnable
Enables any job name, allowing job to be run.
Property | Type | Default | Description |
---|---|---|---|
name | String | required | Job name to enable. |
npm test
In development with watching
npm run ci
The project is available under the MIT license.
FAQs
Moleculer Framework Addons: Job Scheduling for Agenda
We found that moleculer-agenda demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.