免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4636 | 回复: 19
打印 上一主题 下一主题

Dancer结合AnyEvent的使用 [复制链接]

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-06-27 09:11 |只看该作者 |倒序浏览
本帖最后由 py 于 2014-01-07 11:45 编辑

让代码解释一切。
  1. # lib/test.pm
  2. package test;
  3. use Dancer ':syntax';
  4. use AnyEvent;

  5. our $VERSION = '0.1';

  6. my $i = 1;
  7. our $w;
  8. $w = AnyEvent->timer(after => 1, interval => 1, cb => sub { $i++ });

  9. get '/' => sub {
  10.     return $i;
  11. };


  12. true;
复制代码
这样运行:
  1. plackup -p 80 -s Twiggy bin/app.pl
复制代码
这其实解决了很多问题(至少解决了我很多问题)。可以用事件触发更新,也可以把事件放到路径中,用户访问特定目录触发指定事件做后台处理。


个人认为Dancer缺乏先进性,不是一个纯事件框架,所以没法原生支持事件驱动,还要靠Twiggy这样的东西。
Mojolicious号称支持libev,但看了一下好像也不是原生支持。而且使用的人还是太少,不敢用。
其他的框架就更陈旧了。我觉得现在要是有个牛人用libev+libeio重写一个框架,就类似feersum那样就行。

期待Dancer2...


更新:2014年1月7日
修正错误:Mojolicious就是原生支持libev。
目前Mojolicious的使用者要多于Dancer,并且可以很负责任地说,Mojolicious远先进于Dancer。新开始的项目一定要用Mojolicious

论坛徽章:
0
2 [报告]
发表于 2012-06-27 10:43 |只看该作者
本帖最后由 hitsubunnu 于 2012-06-27 10:46 编辑

期待一个web框架 变成一个事件驱动框架 你的想法好另类啊

你要的其实就是 nginx

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
3 [报告]
发表于 2012-06-27 11:23 |只看该作者
这个需求还是很实际的,至少我就用 POE+Dancer 搞定了一个大框架。

论坛徽章:
0
4 [报告]
发表于 2012-06-27 11:42 |只看该作者
我看到的你们的要求是
  单线程+非阻塞+http请求 框架

这个不就是个nginx

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
5 [报告]
发表于 2012-06-27 13:08 |只看该作者
nginx我用的不多,我不是专做web的,用过一次也只是为多个web服务和smtp做个简单的反向代理。
我知道nginx有个模块,使用以后可以写一些Perl的代码在里面。不知道你说的是不是这个方式?

和其他框架比,dancer其实没什么特别,但因为使用的人相对多,他就有很多插件,有现成的session可以用,配置文件里写一笔数据库就有了,data serialize也是写一笔配置文件的事,还有众多的模板可以选择,设置一切都是非常方便的。

在我理解,nginx应该放在最前面,后面放starman和Twiggy一类的东西运行Perl。而且我觉得nginx在访问小的情况下没什么突出优势。

我的情况是,已经开始用AnyEvent,已经用了很久dancer,把这两个放在一起就解决了我所有的需要。只是我期待dancer2能更“现代化”一些

论坛徽章:
1
狮子座
日期:2013-12-16 16:09:24
6 [报告]
发表于 2012-06-27 19:12 |只看该作者
希望有个牛人把几个组件的关系理一下
最近nginx热火朝天,网上有无数研究其源码的文章。
plackup dancer starman twiggy anyevent 等等混在一起,感觉很混乱啊。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
7 [报告]
发表于 2012-06-27 21:57 |只看该作者
回复 6# ttcn_cu

前4个的区别看这里,http://plackperl.org/  ,膏药国的人把Perl鼓捣的还是很明白的,他们的Perl水平明显强过咱们
AnyEvent和前面的4个没关系. 如果说有关系那也是内部实现,比如,“Twiggy is an AnyEvent based non-blocking (asynchronous) and lightweight PSGI web server.” 但从功能上说,AnyEvent做的事情和Twiggy做的事情是完全没关系的。
   

论坛徽章:
1
狮子座
日期:2013-12-16 16:09:24
8 [报告]
发表于 2012-06-28 22:42 |只看该作者
学习了。!

论坛徽章:
2
射手座
日期:2014-10-10 15:59:4715-16赛季CBA联赛之上海
日期:2016-03-03 10:27:14
9 [报告]
发表于 2012-06-28 23:39 |只看该作者
收藏了

论坛徽章:
0
10 [报告]
发表于 2014-01-07 10:25 |只看该作者
正好用到,非常有用~~~~~
万分感谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP