-
-
Notifications
You must be signed in to change notification settings - Fork 2k
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
Remove Beanstalkd from Phalcon #13364
Comments
I'm curious, how did you poll this? I'm actually a user that uses the |
@409H I too use As for Phalcon, we are trying to keep the framework as slim as possible but as feature rich as possible. As mentioned by Serghei, the project has low activity (well zero actually) so we really don't want to support connection to a system that will potentially have bugs or is abandoned. Moving the functionality to the incubator will have minimal impact to existing applications, since all you will have to do now is include the related composer package. HTH |
If we will add rabbitmq as replacement then fine. Also i use it in my environment. |
rabbitmq is a good option |
@niden I understand. Count me in favour of the proposal then. |
I’m using the beanstalkd a lot. The reason for me to go for beanstalk is the native integration with Phalcon. |
Best way: a good refactoring with https://github.com/queue-interop/queue-interop |
I use beanstalkd, don't care for it beeing in core, make's no difference if the functionnality is ported to incubator and preserved as is. |
Used Beanstalkd for a while... But we switched to AWS SQS... It scales easily and is highly available... I don’t see any reason for it being in core... Maybe in the incubator 👍 |
I think that the removal or not of beanstalkd it's a case of if it is still a viable software option or it's just not relevant for usage, kind of like mysql and mysqli. |
We use it, but either way, I'd vote to add some other queues such as RabbitMQ, and SQS. |
New guy here, made an account specifically for this item. |
@marcelwenting if it's moved to the incubator and can just add it to composer then you don't need to change, so we don't have to add another one to core either. |
@benfavre What you are saying is definitely right, but it:
|
@marcelwenting So we shouldn't remove anything and instead, access to Beanstalkd should be replaced by a higher level implementation, and we can move Beanstalkd to be one of the options of the wrapper. |
Alternative: https://github.com/pdezwart/php-amqp (PECL extension) |
@marcelwenting Allow me to disagree and here is why: Queue systems are designed to work asynchronously and therefore the performance impact is minimal if not negligible. I am thinking of a use case where a queue system is used to email people (notifications) for instance. In that use case your delay will be network latency vs. PHP execution and since this is going to be asynchronous then it will have no impact for the main applications. There are plenty of other implementations but the core is that queues are used to move processing from the main app and offload it to another process. Having the queue system in the incubator allows users more choice with the help of composer. Finally to answer a concern I saw above, there will be ample time before this gets implemented so that developers can adapt their code. |
I'd also like us have a queue system wrapper with adapters, and then roll out beanstalkd when we have decent alternatives. |
To extend @scrnjakovic's comment, having a base Queue adapter would fall in line with the Database/Model pattern that is well established within Phalcon. As a current user of BeanstalkD in several projects, going the route of an adapter would probably still break things for me, but also would allow for BeanstalkD to be contained in a single file/folder that still lived within the main code, bootstrap the addition of multiple other queue adapters alongside it. |
All in all - alternative must be made avail. So abstraction layer (interface) which will provide same functionality across different adapters. Example is session adapter in Phalcon. |
Tbh im personally thinking if we need whole adapter over redis/rabbitmq queue. Why reinvent a wheel? Just add only queue adapter using proper extension and some kind of cli class to make it handling of jobs added to queues easier, like we do: $queue->put('hello', 'world'); and class HelloHandler extends Phalcon\Cli\Task\RabbitMQTask
{
public function handle($message)
{
echo $message->body; // displays world
}
public function config()
{
// custom function where we can type channel name, by default it uses class name or run it with some kind of sleep or whatever
}
} And run it in cli. I think we should use already provided extensions, don't write whole rabbitmq/redis queue adapter. Though php-resque is the whole thing and it's php code. |
I guess a question that needs to be answered is "what are the common things that you have to do to a queue?" Obviously Put/Push, Pop/Reserve, watch, some sort of job inspection method. I presume other queuing systems (Gearman, RabbitMQ, etc) have some sort of construct for multiple queues so being able switch and inspect queues. Getting the verbs for acting on queues to a common list would bootstrap the idea of a queue driver/adapter/extension, much like has been done for other components. |
I recommend NSQ |
It looks like there may be a second breath of life in BeanstalkD if today's discussion has any momentum behind it: https://github.com/cornstalkd/cornstalkd |
FYI: beanstalkd is get well in beanstalkd/beanstalkd |
Well, a little too late IMHO but let's where that will end. I'm about to implement RabbitMQ native so it looks more promising on the long run than beanstalkd. |
how about nsq? https://nsq.io/, a realtime distributed messaging platform written in golang. |
It seems that beanstalkd just died (again). For the folks giving thumbs down here - well, you don't have to take it personally - it's just facts, we all loved (past-tense) Beanstalkd. |
I still advocate for a driver instead of committing to a single queue. |
* [4.0.x] - Added unicode flag for email filter * [4.0.x] - Updating the ext folder * [4.0.x] - Added Arr helper class * Revert "[4.0.x] - Added Arr helper class" This reverts commit f8153d3. * Revert "[4.0.x] - Updating the ext folder" This reverts commit 655eafe. * [#13364] - Bye bye beanstalk! We love you! Next version we will add a Queue adapter for more adaptations * [#13364] - Updated the changelog
Resolved. Discussion for new component: https://github.com/phalcon/cphalcon/issues/13851 |
Beanstalkd just released 1.11 |
buried early |
Really disappointed to see this was removed from Phalcon. I've used nearly every messaging system and beanstalkd has just the right amount of features and simplicity. RabbitMQ is likely overkill for most Phalcon projects. Removing this was a mistake. |
I propose to remove beanstalkd from Phalcon and move this functionality to the incubator or other repo. This may be done for 4.0.0 version.
Actually beanstalkd isn't a popular queue system. In addition, beanstalk doesn't provides any unique feature (except a bit magic terminology e.g.
tube
,peek-ready
, etc.). This project has zero activity for many years, unanswered questions like Is this project still active, lack of any out of box HA tools, replication tools, cluster integration, etc.In fact many of our users do not use
beanstalkd
and even did not use. I think that in the framework there should be truly top requested and most used tools.The text was updated successfully, but these errors were encountered: