-
Notifications
You must be signed in to change notification settings - Fork 5
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
feat(geoprocessing): allow workers to use di #202
Conversation
This pull request is being automatically deployed with Vercel (learn more). marxan-storybook – ./app🔍 Inspect: https://vercel.com/vizzuality1/marxan-storybook/6wNLUw7ZWGt2iupUu9NYPV9rV5zK marxan – ./app🔍 Inspect: https://vercel.com/vizzuality1/marxan/BYEJ1Qwec7173sxau8ZwdNDr4NQg |
Thanks @Dyostiq for helping out with this one! |
this._worker = new Worker<Input, Output>( | ||
queueName, | ||
(job: Job) => processor.process(job), | ||
this.config.redis, | ||
); | ||
return this._worker as Worker<Input, Output>; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this._worker = new Worker<Input, Output>( | |
queueName, | |
(job: Job) => processor.process(job), | |
this.config.redis, | |
); | |
return this._worker as Worker<Input, Output>; | |
const worker = new Worker<Input, Output>( | |
queueName, | |
(job: Job) => processor.process(job), | |
this.config.redis, | |
); | |
this._worker = worker; | |
return worker; |
no cast needed :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fixed in d4a3c87
const addValue = 3; | ||
|
||
/** | ||
* This tests USES redis to ensure that workers module works with full flow |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🚀
export class WorkerResolver implements OnModuleDestroy { | ||
private _worker?: Worker; | ||
|
||
constructor(private readonly config: Config) {} | ||
|
||
wrap<Input, Output>( | ||
queueName: string, | ||
processor: WorkerProcessor<Input, Output>, | ||
): Worker<Input, Output> { | ||
if (this._worker) { | ||
throw new Error('Worker is already created!'); | ||
} | ||
this._worker = new Worker<Input, Output>( | ||
queueName, | ||
(job: Job) => processor.process(job), | ||
this.config.redis, | ||
); | ||
return this._worker as Worker<Input, Output>; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If the instance is disposable, and I am not sure if it's a wrapper, or it is a resolver (the naming is mixed in the PR a bit), I'd call it a builder, as builders have a single-use nature and shouldn't be reused after build
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fixed in d4a3c87
Substitute this line for a meaningful title for your changes
Overview
Please write a description. If the PR is hard to understand, provide a quick explanation of the code.
Designs
Link to the related design prototypes (if applicable)
Testing instructions
Please explain how to test the PR: ID of a dataset, steps to reach the feature, etc.
Feature relevant tickets
Link to the related task manager tickets
Checklist before submitting
develop
.deploying to staging/production, please add brief testing instructions
to the deploy checklist (
docs/deployment-checklist.md
)