
Security News
Deno 2.2 Improves Dependency Management and Expands Node.js Compatibility
Deno 2.2 enhances Node.js compatibility, improves dependency management, adds OpenTelemetry support, and expands linting and task automation for developers.
@lokalise/background-jobs-common
Advanced tools
This library provides a basic abstraction over BullMQ-powered background jobs. There are two types available:
This library provides a basic abstraction over BullMQ-powered background jobs. There are two types available:
JobStep
interface and have a job data which extends StepBasedJobData
typeInstall all dependencies:
npm install
Run all tests:
npm run test
See test implementations in ./test/processors
folder. Extend either AbstractBackgroundJobProcessor
or
AbstractStepBasedJobProcessor
and implement required methods.
For that type of jobs, you will need to extend AbstractBackgroundJobProcessor
and implement a processInternal
method.
It will be called when a job is dequeued. Processing logic is automatically wrapped into NewRelic and basic logger calls,
so you only need to add your domain logic.
Both queue and worker is automatically started when you instantiate the processor. There is a default configuration which
you can override by passing queueConfig.queueOptions
and workerOptions
params to the constructor.
Use dispose()
to correctly stop processing any new messages and wait for the current ones to finish.
To create a step-based job, extend the AbstractStepBasedJobProcessor
. This is a more complex type of job processor (based on the previous one) - it can only run via specific classes which
implement the actual logic, and it has some restrictions on the job data generic type.
You will need to implement the following methods:
getStepTransitions(): Record<PropertyKey, JobStep<JobData> | null>
Define a map of your job steps here: keys correspond to the current job state (JobData.execution.state
) and values
are instances of a JobStep
interface or null
values (they finish the job execution). Each step has to implement a
run
method which returns a new execution
object - it will replace the existing one after
the step is finished.
Example implementation:
protected getStepTransitions(): Record <string | number, JobStep<TestJobData> | null> {
return {
initial: new StepFirst(),
'other-state': new StepSecond(),
completed: null,
}
}
In the example above (depending on the getDefaultExecutionState
implementation), the job will start in the initial
state and proceed as follows:
StepFirst
will be executedexecution.state
has changed to other-state
) StepSecond
will be executedexecution.state
has changed to completed
) the job will be finishedgetDefaultExecutionState(): JobData['execution']
Define the default job execution state here. It will be used when a job is scheduled.
onError(error: Error | unknown, job: Job<JobData>): Promise<void>
Define the error handler here. It will be called when any of the steps throws an exception.
FAQs
This library provides a basic abstraction over BullMQ-powered background jobs. There are two types available:
The npm package @lokalise/background-jobs-common receives a total of 957 weekly downloads. As such, @lokalise/background-jobs-common popularity was classified as not popular.
We found that @lokalise/background-jobs-common demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers 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.
Security News
Deno 2.2 enhances Node.js compatibility, improves dependency management, adds OpenTelemetry support, and expands linting and task automation for developers.
Security News
React's CRA deprecation announcement sparked community criticism over framework recommendations, leading to quick updates acknowledging build tools like Vite as valid alternatives.
Security News
Ransomware payment rates hit an all-time low in 2024 as law enforcement crackdowns, stronger defenses, and shifting policies make attacks riskier and less profitable.