Thanks, now I see it's currently supported by bobtfish. If you use it in 
production, could you please share your impressions?

пятница, 5 июня 2015 г., 12:24:53 UTC+5 пользователь alpha6 написал:
>
> Hi, Dmitry
>
> What problem with AnyEvent::RabbitMQ do you have? Right now, I see that 
> this module is updated 21th of march and it doesn't looks like unsupported.
>
> Anyway, blocking library in non-blocking system is not a problem. But you 
> should understand that is a potential bottleneck in whole application. 
> Because if this library blocks - all your apllication will blocks. 
>
> For example, if single request costs 1ms and you have 10rps - your 
> application will locks for 10ms. But, if one of requests is longer than 1s 
> - you will have the DOS. 
>
>
> Best regards,
> Denis 
>
> 2015-05-31 6:30 GMT+03:00 Bakanov Dmitriy <[email protected] 
> <javascript:>>:
>
>> Hello, community
>>
>> Currently I have 2 Mojolicious applications. I want first application 
>> notify second application about some messages it receives. I decided, that 
>> RabbitMQ will be the best way to implement it, because RabbitMQ tool is 
>> widespread, it has monitoring features, it's fast and allow flexibility. 
>> But, I have some troubles to use RabbitMQ from mojolicious. There are 
>> clients to RabbitMQ that allow non-blocking mode, but due to company's 
>> coding standards I don't want to use unsupported client like 
>> AnyEvent::RabbitMQ. Now I have the following Idea:
>> 1. I found a client https://github.com/markwellis/net-amqp-rabbitmq that 
>> has some support and has commits in a recently few months
>> 2. Unfortunately, it's blocking.
>> 3. But I can call method 'get' to get messages from RabbitMQ if they 
>> exist, or it will return undef, if there no messages
>> 4. I want to emit event 'receiving' in IOLoop and call Rabbit's 'get' 
>> method. 
>> 5. If there is a message I will emit 'received' event in IOLoop and then 
>> will be handle it in callback. 
>> 6. After this handling I will emit 'receiving' again. 
>> 7. If there are no messages in 'receiving' call, I will start IOLoop's 
>> timer to fire after 0.1 sec and emit 'receiving' in timer's callback
>> 8. So, I will have the system, that works non-blocking, using blocking 
>> library (?)
>> 9. But I will have some overhead when RabbitMQ is idle, and I will be 
>> check it every 0.1 sec. I think it's not a problem for me, because RabbitMQ 
>> always should have a load in production. I did measured, that idle 
>> Mojolicious in this 'receiving' mode don't consume much resources. Just a 
>> 1-2% of CPU. But again, I think it really never will be idle. 
>>
>> QUESTION: Do you see some pitfalls in this schema I have described? Is 
>> it OK?
>> QUESTION 2: Maybe some advices to use another configuration or 
>> instruments to achieve my goals? 
>>
>> Thanks,
>> Dmitry
>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "Mojolicious" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected] <javascript:>.
>> To post to this group, send email to [email protected] 
>> <javascript:>.
>> Visit this group at http://groups.google.com/group/mojolicious.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>
>
> -- 
> С уважением, Денис Федосеев
>  

-- 
You received this message because you are subscribed to the Google Groups 
"Mojolicious" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/mojolicious.
For more options, visit https://groups.google.com/d/optout.

Reply via email to