标签: catalyst

Nginx变量类似于Apache中的SetEnv?

我在Apache中使用SetEnv来设置我在PHP中使用恢复的虚拟主机中的一些变量$_SERVER[the_variable].

现在我转而使用Perl Catalyst和Nginx,但似乎Nginx中的"env"指令并不相同.这是行不通的.如何实现?

这是背景图片,以防万一有人可以建议更好的方法或我以前的系统不能与Nginx一起使用.

  • 我对许多域使用相同的应用程序.所有数据都来自具有相同结构的不同数据库.
  • 数据库名称在该环境变量中硬编码到虚拟主机.
  • 据我所知,数据库名称从第一个查询开始,所有查询都会转到相应的数据库.
  • 我可以使用相同的数据库拥有多个域,只需在指令中包含相同的变量即可.

apache perl nginx catalyst

77
推荐指数
4
解决办法
8万
查看次数

舞者与催化剂[Perl Web Frameworks]

你怎么看待这两个?我开始读一本关于Catalyst的书,发现它与Dancer相比非常复杂.所以现在我正在试试舞者,它看起来更容易学习,更"人性化".

model-view-controller perl catalyst dancer

27
推荐指数
2
解决办法
7071
查看次数

为什么在Catalyst/Plack/Starman中使用nginx?

我正在尝试使用Plack/Starman部署我的小型Catalyst Web应用程序.所有文档似乎都表明我想将它与nginx结合使用.这有什么好处?为什么不直接在Star 80上使用Starman?

perl nginx catalyst plack starman

23
推荐指数
2
解决办法
6355
查看次数

Perl版本字符串:为什么要使用EVAL EXPR?

我只是注意到了由此产生的Catalyst.pl.这显然是某种未经注释的黑客攻击.设置这样的版本字符串有什么好处?我甚至无法弄清楚他们想要做什么.

our $VERSION = '0.01';
$VERSION = eval $VERSION;
Run Code Online (Sandbox Code Playgroud)

perl version catalyst

20
推荐指数
4
解决办法
1019
查看次数

了解火花物理计划

我试图理解火花的物理计划,但我不理解某些部分,因为它们看起来与传统的rdbms不同.例如,在下面的这个计划中,它是关于对hive表的查询的计划.查询是这样的:

select
        l_returnflag,
        l_linestatus,
        sum(l_quantity) as sum_qty,
        sum(l_extendedprice) as sum_base_price,
        sum(l_extendedprice * (1 - l_discount)) as sum_disc_price,
        sum(l_extendedprice * (1 - l_discount) * (1 + l_tax)) as sum_charge,
        avg(l_quantity) as avg_qty,
        avg(l_extendedprice) as avg_price,
        avg(l_discount) as avg_disc,
        count(*) as count_order
    from
        lineitem
    where
        l_shipdate <= '1998-09-16'
    group by
        l_returnflag,
        l_linestatus
    order by
        l_returnflag,
        l_linestatus;


== Physical Plan ==
Sort [l_returnflag#35 ASC,l_linestatus#36 ASC], true, 0
+- ConvertToUnsafe
   +- Exchange rangepartitioning(l_returnflag#35 ASC,l_linestatus#36 ASC,200), None
      +- ConvertToSafe
         +- TungstenAggregate(key=[l_returnflag#35,l_linestatus#36], functions=[(sum(l_quantity#31),mode=Final,isDistinct=false),(sum(l_extendedpr#32),mode=Final,isDistinct=false),(sum((l_extendedprice#32 * (1.0 - …
Run Code Online (Sandbox Code Playgroud)

sql catalyst query-optimization apache-spark apache-spark-sql

20
推荐指数
1
解决办法
9157
查看次数

如何在Template Toolkit中处理包含非法标识符字符的哈希键?

在Template Toolkit中,如果我有以下包含hashref的变量:

[% 
   artist = {
     'life-span' => '1975 to 1987',
   }
%]
Run Code Online (Sandbox Code Playgroud)

在"寿命"中输出数据的最佳方法是什么?

我试过了...

[% artist.life-span %]
Run Code Online (Sandbox Code Playgroud)

^因连字符而失败.

[% artist.'life-span' %]
Run Code Online (Sandbox Code Playgroud)

^这会失败,因为语法不正确.

[% lifespan = 'life-span' %]
[% artist.$lifespan %]
Run Code Online (Sandbox Code Playgroud)

^这有效,但在具有大量数据的大型应用程序中不切实际.

有没有更好的办法?

我正在研究的项目是基于Catalyst的Web应用程序,数据来自许多不同的外部Web服务,因此我不控制哈希键的名称.我想我可以预先处理Perl中的数据,在将它提供给TT之前重命名问题哈希键,但这似乎是一个非常糟糕的解决方法.

perl catalyst template-toolkit

16
推荐指数
1
解决办法
1327
查看次数

Express.js是否支持发送无缓冲的逐步刷新响应?

Perl的Catalyst框架允许您通过打开的连接发送逐步刷新的响应.例如,您可以write_fh()在Catalyst :: Response上使用.我已经开始使用Node.js,我找不到如何做等效的.

如果我想发送一个大的CSV文件,大约200兆的有没有办法做到这一点,而无需缓冲内存中的整个CSV文件?当然,如果你不在一定的时间内发送数据,客户端将会超时,所以如果承诺会很好 - 但无论如何都要做到这一点?

当我尝试res.send(text)在回调中做一个时,我得到了

Express
500 Error: This socket has been ended by the other party
Run Code Online (Sandbox Code Playgroud)

并且,Express.js似乎不支持显式socket.close()或类似的东西.

这是一个例子,

exports.foo = function (res) {                          
  var query = client.query("SELECT * FROM naics.codes");
  query.on('row', function(row) {                       
    //console.log(row);                                 
    res.write("GOT A ROW");                             
  });                                                   
  query.on('end', function() {                          
    res.end();                                          
    client.end();                                       
  });                                                   
};                                                      
Run Code Online (Sandbox Code Playgroud)

我期望为每行发送"GOT A ROW",直到client.end()表示完成的呼叫.

catalyst node.js express

15
推荐指数
1
解决办法
2万
查看次数

Perl Web框架之间是否有任何性能比较?

我看过提及(这听起来像未经证实的意见,以及那些过时的意见),Embperl是最快的Perl Web框架.

我想知道是否对主要稳定的Perl Web框架的相对速度达成共识,或者理想情况下,在相同示例Web应用程序的实现或单个功能(例如会话处理或表单数据处理)之间进行某种基于事实的性能比较等等......?

更新:这个问题具体是关于不同框架的速度比较,执行相同/等效的任务.我很欣赏良好的意图,但我已经知道速度并不是我应该关注的唯一标准.我没有要求提供哲学建议.不管你信不信,作为框架,你实际上可以通过在它们上运行相同目的的任务/代码/应用来比较它们在苹果到苹果的基础上的速度(例如,使用给定的一组模板化插入来呈现给定的形式等等. .),即使每个框架的完整功能不是100%相同.

perl performance web-frameworks catalyst embperl

14
推荐指数
4
解决办法
5133
查看次数

在 macOS Catalina(Catalyst 应用程序)上未收到静默推送通知(后台)

我目前正在执行推送通知,从我们的后端服务器,以我们的应用程序(卡特琳娜的MacOS和iOS -相同的代码库),使用苹果推送通知和(生成从keyid的,teamId,智威汤逊认证的基于令牌的方式...&在签约使用在 Apple 开发者控制台中生成的私钥)向 APN 服务发送推送。

我面临的问题是我可以成功发送“警报”通知(状态 200,带有标题apns-push-type: alert)并在我的 iOS 和 MacOS 设备上接收它们(推送通知在生产和沙盒模式下成功出现)但由于某种原因,“无声" 推送(带有 header apns-push-type: background)仅在我的 iOS 设备(iPhone)上接收,而不在我的 Mac 上接收didReceiveRemoteNotification(...)inAppDelegate从未被调用)。

到目前为止我做了什么:

  • 确保为静默推送正确配置了 APN 请求标头: apns-push-type: background
  • 确保有正确的 APN 主题标题:(apns-topic: my.bundle.id这对于沙箱/生产是不同的)
  • 添加了“半必需”优先级标头:(apns-priority: 5仅在提供后台推送时)
  • 验证创建的 JWT 是否有效并在 APN auth 标头中使用:(authorization: mytoken必须如此,否则 APN 服务将不会以状态 200 响应)
  • 确认我的应用程序具有在 Xcode 中定义的正确权利和功能(我的推理:必须是这种情况,否则“警报”推送通知也将不起作用)
  • 仔细检查是否允许/启用 Mac 应用程序的推送通知(检查系统设置)
  • 确保发送推送的设备令牌实际上来自打算接收推送的设备(例如我的 MacBook)
  • 检查我用来签署 JWT 的私钥是否具有 APN 功能
  • 在 Mac 应用程序运行但未聚焦时以及在聚焦时进行测试

我正在执行发送推送的 …

macos catalyst push-notification apple-push-notifications ios

13
推荐指数
1
解决办法
951
查看次数

如何在模板工具包模板文件中覆盖WRAPPER?

有没有办法通过模板或临时覆盖来禁用WRAPPER新(\%config)中设置的 parse()?我希望有一个默认值WRAPPER(我将用于99.9%的模板),但不包括一些.

我正在完成这一切,Catalyst::View::TT就像配置概要中的示例一样,除了我不想WRAPPER应用于我的所有模板.

perl templates catalyst

11
推荐指数
1
解决办法
2048
查看次数