如何在Perl Catalyst MVC框架中在请求结束前编写/更新会话数据

如何在Perl Catalyst MVC框架中在请求结束前编写/更新会话数据,perl,session-state,catalyst,Perl,Session State,Catalyst,如何在Perl MVC Catalyst框架中请求结束之前编写或更新会话数据。 我正在使用Session::State::Cookie和Session::Store::FastMap 在长时间运行的请求完成之前,我需要确保数据可用。您可以在请求完成之前,通过覆盖应用程序主模块或插件中的handle_请求方法,进行最后一秒的处理,并将响应发送给客户端 sub handle_request { my ($c, @args) = @_; my $status = $c->nex

如何在Perl MVC Catalyst框架中请求结束之前编写或更新会话数据。 我正在使用
Session::State::Cookie
Session::Store::FastMap


在长时间运行的请求完成之前,我需要确保数据可用。您可以在请求完成之前,通过覆盖应用程序主模块或插件中的handle_请求方法,进行最后一秒的处理,并将响应发送给客户端

sub handle_request {
    my ($c, @args) = @_;

    my $status = $c->next::method(@args);

    # Do some last minute processing before the request is completed.

    return $status;
}

我以前已经重写了这个方法来收集关于请求的统计信息,或者在工作进程占用太多内存时重新启动它。让我知道这是否有用,或者您是否有更多问题。

您可以在请求完成之前,通过覆盖应用程序主模块或插件中的handle_请求方法,进行最后一秒的处理,并将响应发送给客户端

sub handle_request {
    my ($c, @args) = @_;

    my $status = $c->next::method(@args);

    # Do some last minute processing before the request is completed.

    return $status;
}

我以前已经重写了这个方法来收集关于请求的统计信息,或者在工作进程占用太多内存时重新启动它。让我知道这是否有用,或者您是否有更多关于它的问题。

这对我来说很有用

为了确保在长时间运行的请求中设置信息时更新该信息,我在更新与会话相关的一些重要信息之后,执行了一个
$c->finalize_session


之后我验证了其他请求是否收集了正确的值

在请求过程中,我多次调用
$c->finalize_session
,只是为了确保会话数据得到更新,但我对此没有把握。


我以这种方式设置的信息之一是一个计数器,用于更新进度条以反馈用户(因为此任务需要很长时间)。我不知道这是否是最好的方法,我将感谢任何建议。

这就是我的工作

为了确保在长时间运行的请求中设置信息时更新该信息,我在更新与会话相关的一些重要信息之后,执行了一个
$c->finalize_session


之后我验证了其他请求是否收集了正确的值

在请求过程中,我多次调用
$c->finalize_session
,只是为了确保会话数据得到更新,但我对此没有把握。

我以这种方式设置的信息之一是一个计数器,用于更新进度条以反馈用户(因为此任务需要很长时间)。我不知道这是否是最好的方式,我将感谢任何建议