A few years back there was the need for job queue support in Flow. This was when a number of packages were created:
- TYPO3.Jobqueue.Common
- TYPO3.Jobqueue.Redis
- TYPO3.Redis.Beanstalkd
Those packages have been left to rot for the last couple of years, but this is going to change again. I discussed this with @bwaidelich and @christopher (the only contributors to these packages so far, except for one single commit) and set out to act.
Here is what happened so far…
Move to GitHub
The packages have been moved to GitHub now, and are part of the Flowpack organization:
- https://github.com/Flowpack/jobqueue-common
- https://github.com/Flowpack/jobqueue-redis
- https://github.com/Flowpack/jobqueue-beanstalkd
The corresponding projects on review.typo3.org have been marked read-only.
Packagist
The Common and the Beanstalkd package have a composer manifest and are available via Packagist. The source repository there has been updated and the maintainers have been set to neos and flowpack.
- https://packagist.org/packages/typo3/jobqueue-common
- https://packagist.org/packages/typo3/jobqueue-beanstalkd
Snapshot Releases
To allow people who are using those packages to continue doing so without breaking their setups, I created a release of each, aptly named Good Old Times.
Having version number 0.1.0 on the Common and Redis packages and 1.1.0 on Beanstalkd (because 1.0.0 has been in the composer manifest for ages and some tweak was needed) these reelases simply mark the state the packages had the last years.
If you pulled in those packages in a dev-master state so far, make sure to switch to these releases!
Open changes
There are still a number of changes floating around on review.typo3.org on Jobqueue.Common:
- https://review.typo3.org/#/c/34030/ (created by @cognifloyd)
- https://review.typo3.org/#/c/37795/ (created by @cognifloyd)
- https://review.typo3.org/#/c/31669/ (created by @bwaidelich)
- https://review.typo3.org/#/c/34039/ (created by @cognifloyd)
And one for the Beanstalkd package:
- https://review.typo3.org/#/c/31670/ (created by @bwaidelich)
Please go over these and either abandon them or transfer them to pull requests.
Next steps
Code changes
I already pushed a changes to the Common package to bring the codebase up to current standards:
As soon as that is merged more changes will be pushed (I have them ready locally), to resolve some long-standing todo items in the codebase.
The Redis and Beanstalkd packages need to be updated as well, and as soon as changes to the Common require it, adjustments need to be made, of course.
Further changes @bwaidelich already has ready should then finally see the light of day, as well.
A new (simple) queue backend based on SQLite has been created as well, it will be pushed as soon as the required changes in the Common package are merged.
Package key and namespace
So far the packages are still named TYPO3.Jobqueue.*
(typo3/jobqueue-*
for composer) and the namespace reflects this as well.
Now that the packages have been neglected for so long, I think adding breaking changes is quite ok, especially with the availability of the snapshot releases. So it might be the best opportunity to adjust package key and namespace as well. Opinions on that one are welcome!
Documentation
Well, what else is there to be said? The packages need documentation. Even though they are rather simple to use, doing so should not exactly require reading their code…
Thanks
If you made it this far, you deserve some Thank you!, indeed.