【问题标题】:playframework: Request.current in Jobplayframework:作业中的Request.current
【发布时间】:2012-02-05 08:44:56
【问题描述】:

我使用 playframework,但我正在为并发任务苦苦挣扎:

我有一个模块,其中方法使用Request.current(模块 FbGraph)。我需要从Job 访问这些方法,但Job 在另一个线程上运行。在这个线程中,Request.current 返回null,正因为如此,模块不起作用。

我可以将当​​前请求的值传递给Job吗? Request.current 会返回与主线程中相同的值吗?还是我需要修复模块中的某些内容,并将当前请求值保留在其中?

【问题讨论】:

    标签: java playframework httprequest jobs


    【解决方案1】:

    您需要将请求对象显式传递给您的 Job 类。假设您有以下工作类别:

    public class MyJob extends Job<Object> {
       private Request request;
       public MyJob() {
          request = Request.current();
       }
       public void doJob() {
          // here you use the request object
       }
    }
    

    并使用您的 MyJob:

    public static void myAction() {
       ...
       new MyJob().now();
       ...
    }
    

    对于使用 Request.current() 的其他模块,您需要检查是否可以将请求对象传递给该模块,或者在控制器操作线程中使用该模块。

    【讨论】:

    • 谢谢。所以,需要修复模块。
    猜你喜欢
    • 2013-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-24
    • 1970-01-01
    相关资源
    最近更新 更多