标签: dancer

我可以对Makefile.PL做什么,这样当我运行make test时,运行测试套件,将舞者环境设置为'test'?

我希望能够在舞者应用程序中输入"make test"来解决源目录(由"舞者-a appname"生成的目录)并让它在环境设置为'test'的情况下运行测试.

或者,如果有人可以指向我的存储库,我可以称之为"开发舞者应用程序的最佳实践",这将是伟大的!

perl dancer

7
推荐指数
1
解决办法
277
查看次数

Perl舞者挂钩后

在每次请求后,Dancer都有办法执行代码吗?

我尝试使用后挂钩,但似乎它在文件请求后没有执行...有一个名为'after_file_render'的挂钩,在每次请求后执行了相当多次,但我不确定它的用途是什么.是否在每次请求后都会调用它?

perl hook dancer

6
推荐指数
1
解决办法
617
查看次数

究竟是什么触发了jQuery ajax的成功?

我在Perl Web框架中构建一些ajax Dancer我不确定它是否正在响应正确的http头,因为我无法从看似成功的请求中触发jQuery的ajax成功处理程序.使用下面的ajax片段,我在浏览器控制台中获得以下输出.完整的回调被成功调用,并提供看起来成功的输出.Status:200 StatusText:"OK"然而,成功处理程序永远不会被调用.

$.ajax({type: "GET", url: "/learn/faq",
 success: function(data){console.log('omg got it');},
 complete: function(data){console.log("complete", data);}
}).success(function(data){console.log('defered');});


Object
XHR finished loading: "https://www.localhost:4443/learn/faq". assets-d36e1bb9fd59ba3dbd0f8a0cbb37ed8e.js:1
complete 
Object {readyState: 4, responseText: "??<!DOCTYPE html>?<html xmlns="http://www.w3.org/1…ead/conversion.js"></script>????</body>?</html>??", status: 200, statusText: "OK"
Run Code Online (Sandbox Code Playgroud)

我应该看到omg got itdefered消息,但不是.看看这个我觉得jQuery成功处理程序比状态和Dancer http实现没有正确响应更多.

此外,我已经error在片段中添加了一个处理程序,并且错误处理程序正在被看似成功的请求触发.

$.ajax({type: "GET", url: "/learn/faq",
 success: function(data){console.log('omg got it');},
 complete: function(data){console.log("complete", data);},
error: function(data){console.log("error!", data);}
}).success(function(data){console.log('defered');});
Object
XHR finished loading: "https://www.localhost:4443/learn/faq". assets-8cd028b93e0db9dd9455125dc98d5ae1.js:1
error! 
Object {readyState: 4, responseText: "????????????????<!DOCTYPE html>?<html xmlns="http:…></script>????</body>?</html>????</body>?</html>?", status: 200, statusText: …
Run Code Online (Sandbox Code Playgroud)

jquery dancer

6
推荐指数
1
解决办法
5150
查看次数

杀死长期运行的Fastcgi进程

我有一个Perl Dancer Web应用程序,它使用Apache2的mod_fastcgi服务方法.应用程序必须接受上传的文件.当用户上传文件并按下停止按钮时,fastcgi进程挂起,以100%运行,直到我手动终止进程.

是否有任何设置可以自动杀死像这样挂起的进程?有没有办法自动杀死已经运行了一段时间的fastcgi进程?

perl fastcgi dancer

6
推荐指数
1
解决办法
812
查看次数

我可以在Dancer中实例化一个对象来返回要显示的值吗?

我的Dancer app模块中有以下代码:

package Deadlands;
use Dancer ':syntax';
use Dice;

our $VERSION = '0.1';

get '/' => sub {
    my ($dieQty, $dieType);
    $dieQty = param('dieQty');
    $dieType = param('dieType');
    if (defined $dieQty && defined $dieType) {
        return Dice->new(dieType => $dieType, dieQty => $dieQty)->getStandardResult();
    }
    template 'index';
};

true;
Run Code Online (Sandbox Code Playgroud)

我有一个名为Dice.pm的Moops类,如果用.pl文件测试它就可以正常工作,但是当我尝试通过Web浏览器访问它时,我收到以下错误:找不到对象方法"new"通过包"骰子"(也许你忘了加载"骰子"?).

我可以和Dancer一起做吗?

以下是Dice.pm的相关代码:

use 5.14.3;
use Moops;

class Dice 1.0 {
    has dieType => (is => 'rw', isa => Int, required => 1);
    has dieQty => (is => 'rw', isa => Int, …
Run Code Online (Sandbox Code Playgroud)

perl dancer moo moops

6
推荐指数
1
解决办法
157
查看次数

从环境变量配置Dancer?

我是Dancer的新手,但我正在尝试将其配置为在Docker容器中工作.因此,我需要从环境中获取数据库设置.

在我的情况下,我有DB_PORT_3306_TCP_ADDR,DB_PORT_3306_TCP_PORT来自Docker.不幸的是,Dancer::Plugin::Database在我可以更改数据库以使用这些变量之前,模块是错误的.

use Dancer ':syntax';
use Dancer::Plugin::Database;

if ($ENV{DB_PORT_3306_TCP}) {## Connected via docker.
    database->({
        driver => 'mysql',
        username => 'username',
        password => 'password',
        host => $ENV{DB_PORT_3306_TCP_ADDR},
        port => $ENV{DB_PORT_3306_TCP_PORT},
        database => $ENV{DB_ENV_MYSQL_DATABASE},
    });
}
Run Code Online (Sandbox Code Playgroud)

所以问题是,有没有一种很好的方法从环境变量配置Dancer,而不是通过静态YAML?

perl dancer docker

6
推荐指数
1
解决办法
594
查看次数

为什么Dance应用程序在uWSGI + Apache下失败?

我的Dancer应用程序在uWSGI(2.0.7)+ Apache(2.4.10)组合下失败,而它在其他环境(uWSGI + nginx,Starman + Apache,Dancer自己的开发服务器)中自由运行.我没有在日志中找到任何有意义的信息.所以我做了简单的测试应用程序

$ dancer -a tset
Run Code Online (Sandbox Code Playgroud)

然后将默认复制production.ymluwsgi.yml,链接bin/app.pl到这样bin/app.psgi创建tset.ini:

[uwsgi]                                                                                                                                                                             
plugins   = psgi                                                                                                                                                                    
socket    = 127.0.0.1:3033                                                                                                                                                          
uid       = www                                                                                                                                                                     
gid       = www-data                                                                                                                                                                
chdir     = /home/www/apps/tset/bin/                                                                                                                                                
psgi      = app.psgi                                                                                                                                                                
processes = 1                                                                                                                                                                       
master    = true  
Run Code Online (Sandbox Code Playgroud)

使这个ini可用于uWsgi /etc/uwsgi/apps-available,将其链接到/etc/uwsgi/apps-enabled.

重启uwsgi服务.

然后对于Apache(2.4.10)模块,mod-proxy-uwsgi在我的虚拟主机conf中添加了几行:

ProxyPass /adm/y uwsgi://127.0.0.1:3033/
Run Code Online (Sandbox Code Playgroud)

这似乎是最脆弱的一点,因为我觉得我需要设置uWSGIModifier1 5在这里,但没有弄清楚在哪里以及如何?

重新启动Apache并获得"内部服务器错误".在uwsgi日志中我只看到:

Tue Jan 19 02:10:36 2016 - spawned uWSGI worker 1 (pid: 21712, cores: …
Run Code Online (Sandbox Code Playgroud)

apache perl uwsgi dancer psgi

6
推荐指数
1
解决办法
411
查看次数

Starman的最佳--max-requests设置是什么?

我正在使用Starman(v0.4014)和ngynx作为前端代理运行Dancer(v1.3202)应用程序.我注意到我的负载平衡器每隔几个小时出现一次巨大的延迟峰值,并想知道是否工作人员达到了他们的请求限制并重新启动.延迟从平均30ms到1000ms或更长.我检查了MongoDB,没有长时间运行的查询.--max-requests对工人实际做了什么以及当工人达到这个限制时会发生什么?

perl nginx starman dancer

6
推荐指数
1
解决办法
368
查看次数

使用Emperor进行uwsgi部署:重复“宣布我对皇帝的忠诚”

使用uwsgi运行两个psgi Perl Dancer应用程序。

几乎每一个要求,uwsgi封臣都会反复宣布对皇帝的忠诚,这是正常的吗?

这是我的uwsgi.log文件的一小部分:

announcing my loyalty to the Emperor...
Mon Aug 17 20:51:59 2015 - [emperor] vassal www.ini is now loyal
[pid: 1713|app: 0|req: 4/11] 0.0.0.0 () {44 vars in 873 bytes} [Mon Aug 17 20:52:12 2015] GET /sitemap-index.xml => generated 284 bytes in 7 msecs (HTTP/1.1 200) 4 headers in 146 bytes (0 switches on core 0)
[pid: 1706|app: 0|req: 2/12] 0.0.0.0 () {42 vars in 808 bytes} [Mon Aug 17 20:52:22 2015] GET / => generated …
Run Code Online (Sandbox Code Playgroud)

perl uwsgi dancer

5
推荐指数
0
解决办法
1136
查看次数

5
推荐指数
1
解决办法
184
查看次数

标签 统计

dancer ×10

perl ×9

uwsgi ×2

apache ×1

docker ×1

fastcgi ×1

hook ×1

jquery ×1

moo ×1

moops ×1

nginx ×1

psgi ×1

starman ×1

template-toolkit ×1