-
Notifications
You must be signed in to change notification settings - Fork 74
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
BUG: Doorman runner extensibility #287
BUG: Doorman runner extensibility #287
Conversation
60d30c8
to
8658f7b
Compare
@mfendeksilverstripe removing the protected function getNextJobDescriptorWithoutMutex() would technically make this a breaking change, meaning we need to release this as a major version which may not happen for a long time Just a quick recap:
are you able to refactor this PR so that we could release this as either a minor or even patch? |
8ff4c02
to
51eaea9
Compare
@emteknetnz Thanks for the heads up, I pushed the following fixes:
Please review ;-) |
Pushed up a fix for job locking in the case of the job processing hitting memory or execution limits. |
@Cheddam Could you please have a look at this one? |
@maxime-rainville Could you please find some time to review this? |
@mfendeksilverstripe Would it be possible to split out the release job lock fix into a separate PR? It's an important fix that's completely separate to Doorman and would be great to have in mainline. |
@nikrolls Sure, I can do that ;-) |
Thanks! |
1e01f9f
to
4e476f3
Compare
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.
Have tested locally in a limited fashion. Setting max_ticks: 1
successfully bails on long-running tasks, but I'm not sure whether they're intended to remain at STATUS_INIT
?
4e476f3
to
b83fc4e
Compare
@Cheddam Thanks for feedback, I've pushed up the changes you suggested. Also, the branch is now rebased. I tested this locally and it's working for me. This is how it looks like: You may need to run it with this this Doorman fix in place though. |
bdec53d
to
8e03795
Compare
@Cheddam It's rebased now, I tested this locally and it's running well for me. All test suites are passing except one, not sure why. What's the difference between the nightly test suite compared to others? |
Nightly in this context refers to PHP 8. We've just merged #334, so this failure has been resolved - one more rebase should get your build green 😅 |
@mfendeksilverstripe The merge up has been completed now :) |
8e03795
to
e08eba2
Compare
@Cheddam I've rebased the branch and the tests are now green. Tested this again on my local setup and it's all looking good. Just for reference this is my local test setup:
|
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.
Thanks for all your hard work on this one @mfendeksilverstripe!
Doorman runner extensibility
This is a follow up to #279
Details
DefaultRules
now uses named keys so project level configuration override is possible (typically we want to replace or remove the default rule)max_ticks
- this limits the number of loops (disabled by default, backwards compatible)tick_interval
- this makes the hardcoded interval ofsleep(1)
configurable (defaults to 1, backwards compatible)child_runner
- this makes the hardcoded name of the dev task which is used to run the child processes configurable (defaults toProcessJobQueueChildTask
, backwards compatible)Related issues
#288
#297
#296