Na minha opinião, vc pode ter a sua opinião ;)
2013/8/26 Lucas Moraes <[email protected]> > Mas ficar procurando soluções que não vai mudar muito o projeto é trocar 6 > por meia duzia. Conhecimento nunca é demais mesmo, isso é fato! Mas tem > quantas coisas novas para aprender em milhões de outros assuntos, o que > adianta você aprender várias formas de fazer se o final vai ser quase o > mesmo ou o mesmo. Tempo custa dinheiro, não é porque você tem tempo para > achar uma solução melhor que você é obrigado a fazer, aconselho a pessoa > descansar a mente ou procurar algo novo para fazer. Respeito sua opinião, > mas vou defendo a minha opinião. Eu postei minha opinião porque o código do > Tiago não esta feio, o módulo AE apesar de eu nunca ter usado, olhei no > metacpan esta com 49++ até o momento. Lembrando que é só uma opinião minha, > não estou colocando o revolver na cabeça de ninguém. Falou. > > > Em 26 de agosto de 2013 16:41, Andre Carneiro < > [email protected]> escreveu: > > Que feio! >> >> Se houver prazo para pesquisa de novas soluções, eu não vejo porque usar! >> Além do mais eu aprendi que conhecimento nunca é demais. Então eu acho que >> essa nova visão agrega sim, e também qualquer visão diferente sobre a >> solução do problema. Obrigado Lorn! >> >> Aprendi também, que desenvolvedor tem que resolver o problema da melhor >> maneira possível! Que desempenho nunca é demais, e olhar para coisas novas >> deveria ser um incentivo para fazer as coisas corretamente, e não uma >> desculpa esfarrapada para resolver as coisas de qualquer maneira, ou >> desprezar a opinião dos outros de maneira tão grosseira. >> >> Proost! >> >> >> >> >> >> >> 2013/8/26 Lucas Moraes <[email protected]> >> >>> Tiago se seu código esta funcionando deixa rodando. Melhor código é >>> aquele que atende as necessidades do cliente. Pare de procurar problemas >>> onde não existe :) >>> >>> >>> Em 26 de agosto de 2013 11:33, Tiago Peczenyj >>> <[email protected]>escreveu: >>> >>> não entendi >>>> >>>> >>>> 2013/8/26 Daniel de Oliveira Mantovani < >>>> [email protected]> >>>> >>>>> Para de perder tempo com coisas banais que não vão te agregar nada. >>>>> >>>>> 2013/8/26 Tiago Peczenyj <[email protected]>: >>>>> > e? >>>>> > >>>>> > >>>>> > 2013/8/26 Daniel de Oliveira Mantovani < >>>>> [email protected]> >>>>> >> >>>>> >> Tiago, "Easy things should be easy, and hard things should be >>>>> >> possible" - Larry Wall >>>>> >> >>>>> >> 2013/8/26 Tiago Peczenyj <[email protected]>: >>>>> >> > Depois vcs me pagam uma cerveja e fica tudo sussa. >>>>> >> > >>>>> >> > >>>>> >> > 2013/8/26 Lindolfo Lorn Rodrigues <[email protected]> >>>>> >> >> >>>>> >> >> Antes que eu me esqueça: desculpe-me se insultei. >>>>> >> >> >>>>> >> >> >>>>> >> >> 2013/8/26 Lindolfo Lorn Rodrigues <[email protected]> >>>>> >> >>> >>>>> >> >>> Não quis insultar, apenas dar outra visão para o problema :) >>>>> >> >>> >>>>> >> >>> >>>>> >> >>> >>>>> >> >>> 2013/8/26 Tiago Peczenyj <[email protected]> >>>>> >> >>>> >>>>> >> >>>> foi mal, agora eu tenho algo como >>>>> >> >>>> >>>>> >> >>>> while(1){ >>>>> >> >>>> # calcula >>>>> >> >>>> # if passou um minuto envia pro zabbix >>>>> >> >>>> # if passou um dia reinicia o contador >>>>> >> >>>> sleep(1); >>>>> >> >>>> } >>>>> >> >>>> >>>>> >> >>>> qualquer sugestão é bem vinda. de repente o zabbix pode >>>>> continuar com >>>>> >> >>>> a >>>>> >> >>>> monitoria e posso usar o StatsD para essas coisas novas, ainda >>>>> mais >>>>> >> >>>> se for >>>>> >> >>>> menos burocratico. >>>>> >> >>>> >>>>> >> >>>> >>>>> >> >>>> 2013/8/26 Stanislaw Pusep <[email protected]> >>>>> >> >>>>> >>>>> >> >>>>> Seja qual for o seu objetivo, o código que você postou já >>>>> está feito >>>>> >> >>>>> e >>>>> >> >>>>> funcionando bem, aparenemente. >>>>> >> >>>>> "Eu mudaria boa parte do que você fez" e "Eu usaria o Statsd >>>>> para >>>>> >> >>>>> acumular o valor e exportaria via graphite", seguido de "Eu >>>>> não >>>>> >> >>>>> entendi bem >>>>> >> >>>>> o motivo de ficar rodando a cada segundo então vou chutar" é >>>>> um >>>>> >> >>>>> insulto a >>>>> >> >>>>> sua inteligência, IMHO >>>>> >> >>>>> >>>>> >> >>>>> >>>>> >> >>>>> 2013/8/26 Tiago Peczenyj <[email protected]> >>>>> >> >>>>>> >>>>> >> >>>>>> Explain creaktive >>>>> >> >>>>>> >>>>> >> >>>>>> >>>>> >> >>>>>> 2013/8/26 Stanislaw Pusep <[email protected]> >>>>> >> >>>>>>> >>>>> >> >>>>>>> Overengineering detected! >>>>> >> >>>>>>> >>>>> >> >>>>>>> >>>>> >> >>>>>>> 2013/8/26 Lindolfo Lorn Rodrigues <[email protected]> >>>>> >> >>>>>>>> >>>>> >> >>>>>>>> Eu mudaria boa parte do que você fez. >>>>> >> >>>>>>>> >>>>> >> >>>>>>>> Não sei qual problema que você está tentando resolver com >>>>> isso, >>>>> >> >>>>>>>> por >>>>> >> >>>>>>>> isso tudo >>>>> >> >>>>>>>> isso aqui será uma mega hipotese, se puder dizer qual o >>>>> problema >>>>> >> >>>>>>>> está tentando >>>>> >> >>>>>>>> resolver, seria legal :) >>>>> >> >>>>>>>> >>>>> >> >>>>>>>> Eu usaria o Statsd para acumular o valor e exportaria via >>>>> >> >>>>>>>> graphite. >>>>> >> >>>>>>>> >>>>> >> >>>>>>>> Eu não entendi bem o motivo de ficar rodando a cada >>>>> segundo então >>>>> >> >>>>>>>> vou chutar: >>>>> >> >>>>>>>> >>>>> >> >>>>>>>> Você que capturar ações de usuário/sistema em algum lugar? >>>>> >> >>>>>>>> >>>>> >> >>>>>>>> Caso sim, você poderia colocar esse codigo logo depois a >>>>> ação do >>>>> >> >>>>>>>> usuário/sistema: >>>>> >> >>>>>>>> >>>>> >> >>>>>>>> my $statsd = Etsy::StatsD->new >>>>> >> >>>>>>>> my $bucket = "pacman.hit_number" >>>>> >> >>>>>>>> $statsd->increment($bucket); >>>>> >> >>>>>>>> >>>>> >> >>>>>>>> O stasd usa UDP, não vai alterar em nada perceptivo na >>>>> >> >>>>>>>> perfomance, >>>>> >> >>>>>>>> do seu sistema. >>>>> >> >>>>>>>> >>>>> >> >>>>>>>> Mandando o contador acima para o statsd ele irá acumular e >>>>> mandar >>>>> >> >>>>>>>> para o graphite, >>>>> >> >>>>>>>> no graphite com o dado cru você pode criar várias >>>>> operações de >>>>> >> >>>>>>>> estatistica >>>>> >> >>>>>>>> ( mediana, media, percentile..etc ) e gerar graficos. >>>>> >> >>>>>>>> >>>>> >> >>>>>>>> >>>>> >> >>>>>>>> >>>>> >> >>>>>>>> >>>>> http://graphite.readthedocs.org/en/0.9.10/functions.html#module-graphite.render.functions >>>>> >> >>>>>>>> >>>>> >> >>>>>>>> O Statsd suporta vários backend o mais conhecido/usado >>>>> deles é o >>>>> >> >>>>>>>> Graphite: >>>>> >> >>>>>>>> http://graphite.wikidot.com/screen-shots >>>>> >> >>>>>>>> >>>>> >> >>>>>>>> A Etsy tem um post explicando melhor a "metodologia" deles >>>>> de >>>>> >> >>>>>>>> medir >>>>> >> >>>>>>>> tudo: >>>>> >> >>>>>>>> >>>>> >> >>>>>>>> >>>>> >> >>>>>>>> >>>>> >> >>>>>>>> >>>>> http://codeascraft.com/2011/02/15/measure-anything-measure-everything/ >>>>> >> >>>>>>>> https://github.com/etsy/statsd >>>>> >> >>>>>>>> >>>>> >> >>>>>>>> PS: O Statsd teve origem no Flickr, e a primeira versão >>>>> era em >>>>> >> >>>>>>>> Perl >>>>> >> >>>>>>>> recentemente eles >>>>> >> >>>>>>>> liberaram o código fonte: >>>>> >> >>>>>>>> >>>>> >> >>>>>>>> https://github.com/iamcal/Flickr-StatsD >>>>> >> >>>>>>>> >>>>> >> >>>>>>>> >>>>> >> >>>>>>>> >>>>> >> >>>>>>>> 2013/8/26 Stanislaw Pusep <[email protected]> >>>>> >> >>>>>>>>> >>>>> >> >>>>>>>>> Use AE::time() no lugar do localtime >>>>> >> >>>>>>>>> >>>>> >> >>>>>>>>> понедельник, 26 августа 2013 г. пользователь Tiago >>>>> Peczenyj >>>>> >> >>>>>>>>> писал: >>>>> >> >>>>>>>>> >>>>> >> >>>>>>>>>> Ola >>>>> >> >>>>>>>>>> >>>>> >> >>>>>>>>>> Eu tenho o seguinte caso >>>>> >> >>>>>>>>>> >>>>> >> >>>>>>>>>> preciso rodar um certo método a cada segundo, que por >>>>> sua vez >>>>> >> >>>>>>>>>> acumula um valor em algum atributo interno do objeto ( >>>>> total += >>>>> >> >>>>>>>>>> por exemplo >>>>> >> >>>>>>>>>> ). >>>>> >> >>>>>>>>>> >>>>> >> >>>>>>>>>> a cada minuto quero enviar o valor de total para algum >>>>> lugar >>>>> >> >>>>>>>>>> (ex >>>>> >> >>>>>>>>>> Zabbix). >>>>> >> >>>>>>>>>> >>>>> >> >>>>>>>>>> a meia noite eu quero limpar o total para 0. >>>>> >> >>>>>>>>>> >>>>> >> >>>>>>>>>> Eu cheguei a algo assim: >>>>> >> >>>>>>>>>> use AnyEvent; >>>>> >> >>>>>>>>>> >>>>> >> >>>>>>>>>> sub loop { >>>>> >> >>>>>>>>>> my $obj = Foo->new; >>>>> >> >>>>>>>>>> my $cv = AE::cv; >>>>> >> >>>>>>>>>> >>>>> >> >>>>>>>>>> my $seconds_in_a_day = 60 * 60 * 24; >>>>> >> >>>>>>>>>> my $seconds_to_midnight = $seconds_in_a_day - >>>>> >> >>>>>>>>>> seconds_from_midnight(); >>>>> >> >>>>>>>>>> >>>>> >> >>>>>>>>>> my $loop = AE::timer 0, 1, sub { $obj->run }; >>>>> >> >>>>>>>>>> >>>>> >> >>>>>>>>>> my $send = AE::timer 60, 60, sub { $obj->send }; >>>>> >> >>>>>>>>>> >>>>> >> >>>>>>>>>> my $clear= AE::timer $seconds_to_midnight, >>>>> $seconds_in_a_day, >>>>> >> >>>>>>>>>> sub { $obj->clear }; >>>>> >> >>>>>>>>>> $cv->recv; >>>>> >> >>>>>>>>>> } >>>>> >> >>>>>>>>>> >>>>> >> >>>>>>>>>> a sub seconds_from_midnight usa localtime pra fazer uma >>>>> conta >>>>> >> >>>>>>>>>> marota. >>>>> >> >>>>>>>>>> >>>>> >> >>>>>>>>>> A assinatura do AE::timer eh >>>>> >> >>>>>>>>>> >>>>> >> >>>>>>>>>> AE::timer $delay, $interval, $callback; >>>>> >> >>>>>>>>>> >>>>> >> >>>>>>>>>> No primeiro timer eu tenho o meu main loop, chamando o >>>>> metodo >>>>> >> >>>>>>>>>> run. >>>>> >> >>>>>>>>>> No segundo eu tenho o metodo que envia os dados a cada 60 >>>>> >> >>>>>>>>>> segundos >>>>> >> >>>>>>>>>> No terceiro eu calculo quantos segundos faltam para a >>>>> meia >>>>> >> >>>>>>>>>> noite e >>>>> >> >>>>>>>>>> mando repetir a cada 24 horas. >>>>> >> >>>>>>>>>> >>>>> >> >>>>>>>>>> hoje eu tenho um loop com um sleep 1 e varios ifs. quero >>>>> que >>>>> >> >>>>>>>>>> fique >>>>> >> >>>>>>>>>> mais legivel e nao utilizo anyEvent em nenhum outro >>>>> lugar. Nao >>>>> >> >>>>>>>>>> precisa ser >>>>> >> >>>>>>>>>> EXATO, portanto um atraso de alguns segundos pode >>>>> acontecer. >>>>> >> >>>>>>>>>> >>>>> >> >>>>>>>>>> Parece bom, mas eu tenho algumas duvidas. >>>>> >> >>>>>>>>>> >>>>> >> >>>>>>>>>> 1) esta claro o suficiente? >>>>> >> >>>>>>>>>> 2) o overhead do AnyEvent parece ser o mesmo do sleep (1) >>>>> >> >>>>>>>>>> durante >>>>> >> >>>>>>>>>> o runtime (ignorando quanto tempo demora pra iniciar ou >>>>> não), >>>>> >> >>>>>>>>>> certo? >>>>> >> >>>>>>>>>> 3) para rodar algo "a meia noite" me parece um tanto >>>>> confuso >>>>> >> >>>>>>>>>> ainda. não encontrei nenhum helper q me ajude (o >>>>> AnyEvent::Cron >>>>> >> >>>>>>>>>> da pau pra >>>>> >> >>>>>>>>>> mim). sera q nao eh melhor "re-setar" o time watcher >>>>> para a >>>>> >> >>>>>>>>>> proxima meia >>>>> >> >>>>>>>>>> noite? >>>>> >> >>>>>>>>>> 4) alias tem algo melhor do que ficar brincando com >>>>> localtime() >>>>> >> >>>>>>>>>> pra pegar quantos segundos faltam pra proxima meia >>>>> noite? algo >>>>> >> >>>>>>>>>> usando >>>>> >> >>>>>>>>>> DateTime >>>>> >> >>>>>>>>>> >>>>> >> >>>>>>>>>> por fim >>>>> >> >>>>>>>>>> >>>>> >> >>>>>>>>>> 5) tem algum problema ao usar AE::timer q eu não esteja >>>>> vendo? >>>>> >> >>>>>>>>>> Fora os problemas interentes como se eu usar IO >>>>> Bloqueante eu >>>>> >> >>>>>>>>>> não vou ter os >>>>> >> >>>>>>>>>> timers "exatos". >>>>> >> >>>>>>>>>> >>>>> >> >>>>>>>>>> Obrigado >>>>> >> >>>>>>>>>> >>>>> >> >>>>>>>>>> Tiago >>>>> >> >>>>>>>>>> >>>>> >> >>>>>>>>>> -- >>>>> >> >>>>>>>>>> Tiago B. Peczenyj >>>>> >> >>>>>>>>>> Linux User #405772 >>>>> >> >>>>>>>>>> >>>>> >> >>>>>>>>>> http://about.me/peczenyj >>>>> >> >>>>>>>>> >>>>> >> >>>>>>>>> >>>>> >> >>>>>>>>> =begin disclaimer >>>>> >> >>>>>>>>> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ >>>>> >> >>>>>>>>> SaoPaulo-pm mailing list: [email protected] >>>>> >> >>>>>>>>> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> >>>>> >> >>>>>>>>> =end disclaimer >>>>> >> >>>>>>>>> >>>>> >> >>>>>>>> >>>>> >> >>>>>>>> >>>>> >> >>>>>>>> =begin disclaimer >>>>> >> >>>>>>>> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ >>>>> >> >>>>>>>> SaoPaulo-pm mailing list: [email protected] >>>>> >> >>>>>>>> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> >>>>> >> >>>>>>>> =end disclaimer >>>>> >> >>>>>>>> >>>>> >> >>>>>>> >>>>> >> >>>>>>> >>>>> >> >>>>>>> =begin disclaimer >>>>> >> >>>>>>> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ >>>>> >> >>>>>>> SaoPaulo-pm mailing list: [email protected] >>>>> >> >>>>>>> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> >>>>> >> >>>>>>> =end disclaimer >>>>> >> >>>>>>> >>>>> >> >>>>>> >>>>> >> >>>>>> >>>>> >> >>>>>> >>>>> >> >>>>>> -- >>>>> >> >>>>>> Tiago B. Peczenyj >>>>> >> >>>>>> Linux User #405772 >>>>> >> >>>>>> >>>>> >> >>>>>> http://about.me/peczenyj >>>>> >> >>>>>> >>>>> >> >>>>>> =begin disclaimer >>>>> >> >>>>>> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ >>>>> >> >>>>>> SaoPaulo-pm mailing list: [email protected] >>>>> >> >>>>>> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> >>>>> >> >>>>>> =end disclaimer >>>>> >> >>>>>> >>>>> >> >>>>> >>>>> >> >>>>> >>>>> >> >>>>> =begin disclaimer >>>>> >> >>>>> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ >>>>> >> >>>>> SaoPaulo-pm mailing list: [email protected] >>>>> >> >>>>> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> >>>>> >> >>>>> =end disclaimer >>>>> >> >>>>> >>>>> >> >>>> >>>>> >> >>>> >>>>> >> >>>> >>>>> >> >>>> -- >>>>> >> >>>> Tiago B. Peczenyj >>>>> >> >>>> Linux User #405772 >>>>> >> >>>> >>>>> >> >>>> http://about.me/peczenyj >>>>> >> >>>> >>>>> >> >>>> =begin disclaimer >>>>> >> >>>> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ >>>>> >> >>>> SaoPaulo-pm mailing list: [email protected] >>>>> >> >>>> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> >>>>> >> >>>> =end disclaimer >>>>> >> >>>> >>>>> >> >>> >>>>> >> >> >>>>> >> >> >>>>> >> >> =begin disclaimer >>>>> >> >> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ >>>>> >> >> SaoPaulo-pm mailing list: [email protected] >>>>> >> >> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> >>>>> >> >> =end disclaimer >>>>> >> >> >>>>> >> > >>>>> >> > >>>>> >> > >>>>> >> > -- >>>>> >> > Tiago B. Peczenyj >>>>> >> > Linux User #405772 >>>>> >> > >>>>> >> > http://about.me/peczenyj >>>>> >> > >>>>> >> > =begin disclaimer >>>>> >> > Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ >>>>> >> > SaoPaulo-pm mailing list: [email protected] >>>>> >> > L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> >>>>> >> > =end disclaimer >>>>> >> > >>>>> >> >>>>> >> >>>>> >> >>>>> >> -- >>>>> >> >>>>> >> -dom >>>>> >> >>>>> >> -- >>>>> >> >>>>> >> Daniel de Oliveira Mantovani >>>>> >> Business Analytic Specialist >>>>> >> Perl Evangelist /Astrophysics hobbyist. >>>>> >> +55 11 9 8538-9897 >>>>> >> XOXO >>>>> >> =begin disclaimer >>>>> >> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ >>>>> >> SaoPaulo-pm mailing list: [email protected] >>>>> >> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> >>>>> >> =end disclaimer >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > -- >>>>> > Tiago B. Peczenyj >>>>> > Linux User #405772 >>>>> > >>>>> > http://about.me/peczenyj >>>>> > >>>>> > =begin disclaimer >>>>> > Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ >>>>> > SaoPaulo-pm mailing list: [email protected] >>>>> > L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> >>>>> > =end disclaimer >>>>> > >>>>> >>>>> >>>>> >>>>> -- >>>>> >>>>> -dom >>>>> >>>>> -- >>>>> >>>>> Daniel de Oliveira Mantovani >>>>> Business Analytic Specialist >>>>> Perl Evangelist /Astrophysics hobbyist. >>>>> +55 11 9 8538-9897 >>>>> XOXO >>>>> =begin disclaimer >>>>> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ >>>>> SaoPaulo-pm mailing list: [email protected] >>>>> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> >>>>> =end disclaimer >>>>> >>>> >>>> >>>> >>>> -- >>>> Tiago B. Peczenyj >>>> Linux User #405772 >>>> >>>> http://about.me/peczenyj >>>> >>>> =begin disclaimer >>>> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ >>>> SaoPaulo-pm mailing list: [email protected] >>>> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> >>>> =end disclaimer >>>> >>>> >>> >>> =begin disclaimer >>> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ >>> SaoPaulo-pm mailing list: [email protected] >>> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> >>> =end disclaimer >>> >>> >> >> >> -- >> André Garcia Carneiro >> Software Engineer >> (11)982907780 >> >> =begin disclaimer >> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ >> SaoPaulo-pm mailing list: [email protected] >> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> >> =end disclaimer >> >> > > =begin disclaimer > Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ > SaoPaulo-pm mailing list: [email protected] > L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> > =end disclaimer > >
=begin disclaimer Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ SaoPaulo-pm mailing list: [email protected] L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> =end disclaimer
