Recommended
PDF
Mojoliciousでつくる! Webアプリ入門
PDF
PDF
「新しい」を生み出すためのWebアプリ開発とその周辺
PDF
PDF
いまさら聞けない!?Backbone.js 超入門
PDF
BACKBONE.JSによるWebアプリケーション開発について
KEY
エンジニアの為のWordPress入門 〜WordPressはWebAppプラットフォームです〜
ODP
ODP
PDF
【Camphor ×サイボウズ】selenium勉強会
PDF
PDF
PDF
Spring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframework
KEY
続・Twitter bootstrap入門 #html5j
PDF
2015年GMOペパボ新卒エンジニア研修 Web開発研修イントロダクション
PDF
PDF
PDF
SeleniumIDEとSelenium WebDriver × Node.js Seleniumで業務効率化する15分
PDF
ODP
PDF
Introduction to Favmemo for Immature Engineers
PDF
PDF
2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション
PDF
20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java
PPT
PDF
Grails 3.0先取り!? Spring Boot入門ハンズオン #jggug_boot
PDF
PDF
KEY
Mojoliciousをウェブ制作現場で使ってみてる
PDF
More Related Content
PDF
Mojoliciousでつくる! Webアプリ入門
PDF
PDF
「新しい」を生み出すためのWebアプリ開発とその周辺
PDF
PDF
いまさら聞けない!?Backbone.js 超入門
PDF
BACKBONE.JSによるWebアプリケーション開発について
KEY
エンジニアの為のWordPress入門 〜WordPressはWebAppプラットフォームです〜
ODP
What's hot
ODP
PDF
【Camphor ×サイボウズ】selenium勉強会
PDF
PDF
PDF
Spring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframework
KEY
続・Twitter bootstrap入門 #html5j
PDF
2015年GMOペパボ新卒エンジニア研修 Web開発研修イントロダクション
PDF
PDF
PDF
SeleniumIDEとSelenium WebDriver × Node.js Seleniumで業務効率化する15分
PDF
ODP
PDF
Introduction to Favmemo for Immature Engineers
PDF
PDF
2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション
PDF
20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java
PPT
PDF
Grails 3.0先取り!? Spring Boot入門ハンズオン #jggug_boot
PDF
PDF
Viewers also liked
KEY
Mojoliciousをウェブ制作現場で使ってみてる
PDF
PPTX
Amon2 で造られた api サーバを引き継いで課金の実装をしました話
PPTX
モダンでもなく reactでもなく フロントエンドでもなく 開発でもない話
PDF
Mojoliciousのログ出力を改造する in chiba.pm #3
PDF
PDF
PDF
PPT
CPANの依存モジュールをもう少し正しく検出したい
PPT
2016年のPerl (Long version)
PPT
PPTX
PDF
PPT
More from Tetsuya Tatsumi
PDF
PDF
Mojoliciousのl10 nを自動化するツール
PDF
PDF
PDF
PPTX
英文難易度の低いニュースを集めたWebアプリ twien
PDF
PDF
Recently uploaded
PDF
100年後の知財業界-生成AIスライドアドリブプレゼン イーパテントYouTube配信
PDF
2025→2026宙畑ゆく年くる年レポート_100社を超える企業アンケート総まとめ!!_企業まとめ_1229_3版
PDF
さくらインターネットの今 法林リージョン:さくらのAIとか GPUとかイベントとか 〜2026年もバク進します!〜
PDF
Reiwa 7 IT Strategist Afternoon I Question-1 Ansoff's Growth Vector
PDF
Starlink Direct-to-Cell (D2C) 技術の概要と将来の展望
PDF
PDF
第21回 Gen AI 勉強会「NotebookLMで60ページ超の スライドを作成してみた」
PDF
Reiwa 7 IT Strategist Afternoon I Question-1 3C Analysis
PPTX
Mojolicious+redisでチャットを作った 1. 2. 3. 4. 5. 6. 7. 8. 10. 11. 12. 非同期なコード
package Test::Web::Example;
use Mojo::Base 'Mojolicious::Controller';
use Time::HiRes qw(sleep);
sub welcome {
my $self = shift;
$self->render_later;
Mojo::IOLoop->timer(0.5 => sub {
$self->render(
message => 'Welcome to the
Mojolicious real-time web framework!');
});
}
1;
13. Apache bench
ab –c 100–n 1000 http://your_host_name/
サーバ構成
さくらVPS
メモリ 1G
CPU 仮想2コア
nginx1.6+hyponotad 5workers
nginx1.6+starman 5workers
14. 15. 16. 17. 18. 同期的コード
sub mojo4{
my $self = shift;
my $ua = LWP::UserAgent->new;
my $res = $ua-
>get("http://atndfc.dokechin.com");
if ($res->is_success) {
$self->render(message => $res->content);
}
else {
die $res->status_line;
}
}
19. 20. 21. 22. 23. # callback hell code
sub mojo{
my $self = shift;
$self->render_later;
$ua->get('http://yahoo.co.jp/' =>
sub{ my ($ua, $tx) = @_;
my $title1 = $tx->res->dom->html->head-
>title->text;
$ua->get('http://google.com/' =>
sub{ my ($ua, $tx) = @_;
my $title2 = $tx->res->dom->html->head-
>title->text;
$self->render(msg => $title1 . $title2);
});
});
}
24. # finish
sub mojo2{
my $self = shift;
$self->render_later;
my $delay = Mojo::IOLoop::Delay->new;
$delay->on(finish=>sub{
my $delay = shift;
my @titles = map { $_->res->dom-
>at('title')->text } @_;
$self->render(message => "@titles");
});
$self->ua->get( $_ => $delay->begin )
for@urls;
}
25. # stepsを利用したコード
sub mojo3{
my $self = shift;
$self->render_later;
my $delay = Mojo::IOLoop::Delay->new;
$delay->steps(sub{
my ($delay) = @_;
$self->ua->get( "http://www.cpan.org/" =>
$delay->begin);
$self->ua->get( "http://jognavi.com/" => $delay-
>begin);
}, sub {
my ($delay,@args) = @_;
my @messages = map {$_->res->dom->at('title')-
>text} @args;
$self->render(message=> "@messages");
},
);
}
26. 27. 28. 29. 30. 31. 32. 33.