mariano / disque-php

PHP library for Disque, an in-memory, distributed job queue
MIT License
132 stars 19 forks source link

Have a look, try out and criticize: Disqontrol, a framework built on disque-php #35

Open Revisor opened 7 years ago

Revisor commented 7 years ago

Hello everyone, in the issue #22, over a year ago, I mentioned that I'd been working on a framework for running background jobs.

However, as Fred Brooks said many years ago, software projects take a lot longer than anticipated, even if you expect them to take a lot longer. If I had known at the beginning how long this would take me, I would probably have run away in fear.

Nevertheless I can now present to you: Disqontrol

Think of it as Resque/Celery, but built in PHP and on Disque. It communicates with Disque with the help of our beloved disque-php which proved an immense help during the development. A big thank you to all developers here, of course especially Mariano!

I would be very grateful if you could take a look, read the documentation and the code, take it out for a ride and criticize, criticize, criticize and pull-request away.

Warning, it is still very much in an alpha state, albeit already working in our development environment. But the base is already there and humming.

Thank you. (And I apologize to Mariano for opening an issue about this, hopefully it's OK. If not, feel free to close it.)

mariano commented 7 years ago

This looks super cool! Have you check Jodi's signal handler for an easy way to take advantage of php 7.1's improved signals? https://github.com/Seldaek/signal-handler

I'm currently traveling and will be off the grid for 12 days so I'll check this out more thoroughly then.

Looking forward to playing with it! On Wed, Jan 4, 2017 at 19:14 Revisor notifications@github.com wrote:

Hello everyone, in the issue #22 https://github.com/mariano/disque-php/issues/22, over a year ago, I mentioned that I'd been working on a framework for running background jobs.

However, as Fred Brooks said many years ago, software projects take a lot longer than anticipated, even if you expect them to take a lot longer. If I had known at the beginning how long this would take me, I would probably have run away in fear.

Nevertheless I can now present to you: Disqontrol https://github.com/disqontrol/disqontrol

Think of it as Resque/Celery, but built in PHP and on Disque. It communicates with Disque with the help of our beloved disque-php which proved an immense help during the development. A big thank you to all developers here, of course especially Mariano!

I would be very grateful if you could take a look, read the documentation and the code, take it out for a ride and criticize, criticize, criticize and pull-request away.

Warning, it is still very much in an alpha state, albeit already working in our development environment. But the base is already there and humming.

Thank you. (And I apologize to Mariano for opening an issue about this, hopefully it's OK. If not, feel free to close it.)

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/mariano/disque-php/issues/35, or mute the thread https://github.com/notifications/unsubscribe-auth/AABIpgOaXfr230qZl9jfKZx6yUV8VuYrks5rPBnfgaJpZM4LbIGO .

Revisor commented 7 years ago

Thank you for reminding me of this, I read about the improved signal handlers and thought about incorporating it later, but if someone's already done the job, I'll take a look at it.

Happy travels!

Revisor commented 7 years ago

I wrote

Warning, it is still very much in an alpha state, albeit already working in our development environment

I would now correct it to say, "warning, it's still in beta, albeit already working in our production environment." :-)

We've used it for a very light load (tens of jobs a day) since January, and so far so good.

Adding a new job is just a matter of writing one small class. We run Disqontrol under Supervisor and changing the queue configuration or adding new queues requires us to restart the process under Supervisor.

Adding a recurring job requires one row in the queue crontab, it can be done directly by a developer, it can be committed in the repository and deployed directly with the code. Changing the queue crontab doesn't require any restart.

Revisor commented 6 years ago

It's been 11 months since we started using Disqontrol in production. Everything works well.

Any other brave people want to take it for a test drive? :-)