On the future of the TYPO3.Jobqueue.* packages

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:

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.

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:

And one for the Beanstalkd package:

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. :smile:

8 Likes

I can’t really contribute much to the discussion but I’d also need a documentation to understand what it does exactly.
I’m currently planning a workflow feature for one of my projects - I guess these packages could serve as a solid foundation because the queue feature is also needed there.
For what tasks have you used it so far?

I think it’s a good opportunity to also rename the namespace, now that we’re at it …

2 Likes

Funny, this is continued (yet again) in RFC: Overhauled JobQueue Packages somehow. :slight_smile: Keep it moving!

Right, I forgot about this thread… thanks for linking!