5
在我Mojolicious Perl代碼我處理創建,並從遠程客戶端觀看了工作。全局和論壇中的Mojolicious處理不同的路徑
保持我的工作崗位陣列哈希,這是一個全局變量英寸
它,然後在PUT的處理程序使用「/任務/創建」和GET「/工作/狀態」。 當添加與PUT新作業「/工作/創建」陣列得到 延伸在子程序(它包含在下面的代碼4種元素), 但經由GET狀態‘/作業/狀態請求作業時’的 作業的列表,陣列不包含添加元素(它計數2種 元件)。
謝謝,揚
下面是代碼:
#!/usr/bin/perl -w
use threads;
use threads::shared;
use Mojolicious::Lite;
use Mojo::JSON;
my (%record, %job1, %job2, %job3, @jobs) : shared;
%job1 = (id=>"id1");
%job2 = (id=>"id2");
%job3 = (id=>"id3");
push (@jobs, \%job1);
push (@jobs, \%job2);
app->config(hypnotoad => {listen => ['http://*:3000']});
put '/job/create' => sub {
my $self = shift;
my $obj = Mojo::JSON->decode($self->req->body);
my $id = $obj->{id};
%record = (id => $id);
push (@jobs, \%record); # test the global prefilled
push (@jobs, \%job3); # test the global locally filled
$self->render(text => "Created job id $id. Jobs count: " .
$#jobs);
};
get '/job/status' => sub {
my $self = shift;
my $out = "[";
for(my $i=0; $i<$#jobs+1; $i++) {
$out .= "{id:\"" . $jobs[$i]{id} . "\",";
$out .= "," if $i<$#jobs;
}
$out .= "]";
$self->render(text => "allJobsInfo($out). Num jobs: " . $#jobs);
};
app->start();
感謝您的幫助。最後,我轉向使用CouchDB的解決方案。看起來很不錯btw。 :) – 2012-03-01 17:45:40
備選'perl your.app守護進程-l'http:// *:3000''也可以工作。 [請參閱內置Web服務器](http://mojolicio.us/perldoc/Mojolicious/Guides/Cookbook#Built2Din_web_server) – klekker 2012-07-13 16:19:44