playframework: Request.current в вакансии - PullRequest
2 голосов
/ 05 февраля 2012

Я использую playframework, и я борюсь с параллельной задачей:

У меня есть модуль, в котором методы используют Request.current (модуль FbGraph).Мне нужно получить доступ к этим методам из Job, но Job работает в другом потоке.В этой теме Request.current возвращает null, и из-за этого модуль не работает.

Могу ли я передать значение текущего запроса на Job?Будет ли Request.current возвращать то же значение, что и в основном потоке?Или мне нужно что-то исправить в модуле и сохранить в нем текущее значение запроса?

1 Ответ

1 голос
/ 05 февраля 2012

Вам необходимо явно передать объект запроса в ваш класс 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 (), вам нужно будет либо проверить, можете ли вы передать объект запроса этому модулю, либо использовать этот модуль в потоке действий вашего контроллера.

...