2013-02-19 13 views

cevap

115

this issue göre, belgelerde sabittir.

import play.api.libs.concurrent.Execution.Implicits._ 
+7

. Bazı insanlar bunun Scala küresel bağlamı ile aynı şey olduğunu düşünüyor. Ancak değil. [Execution.scala] (https://github.com/playframework/playframework/blob/2.2.x/framework/src/play/src/main/scala/play/api/libs/concurrent/Execution.scala) https://github.com/playframework/playframework/blob/2.2.x/framework/src/play/src/main/scala/play/core/system/Invoker.scala?source ([Invoker.scala] işaret = cc) Bu, aslında Oyun oyuncularının yürütme bağlamıdır. Bu, application.conf – EECOLOR

+0

'u kullanarak davranışı değiştirmenize izin verir. "Bu sorun" bağlantısı artık kesildi. Web.archive üzerinde bir arşiv var: http://web.archive.org/web/20140222113140/http://play.lighthouseapp.com/projects/82401/tickets/899-error-cannot-find-an -implicit-ExecutionContext-ya-gerektiren-tek-kendinizi-ya-ithalat-executioncontextimplicitsglobal – EdgeCaseBerg

+0

@EdgeCaseBerg tekrar raporlama için – EECOLOR

-1

Alternatif seçenek:

import scala.concurrent.ExecutionContext.Implicits.global 
+0

Lütfen bu yürütme bağlamıyla ilgili olarak gönderilen soru hakkındaki yorumuma bakın. – EECOLOR

1

Oynat 2.4 beri Guice bağımlılık yoluyla varsayılan execution context enjekte edebilir ve enjeksiyon aşağıdaki ithalat eklemek gerekiyordu. yürütme içeriği hakkında

class Foo @Inject()()(implicit ec:ExecutionContext) { 

def bar() = { 
    WS.url(url) 
    .get 
    .map { response => // error occurs on this line 
     response.status match { 
     case 200 => Right(response.json) 
     case status => Left(s"Problem accessing api, status '$status'") 
    } 
    } 
} 
+0

Kodunuz yürütme bağlamını enjekte etmez. Hala yürütme bağlamını almak için örtülü bir çözünürlük kullanır. – EECOLOR

+0

Oyun belgelerine göre (en az 2.6), @ mgosk'in cevabı standarttır; bakınız: https://www.playframework.com/documentation/2.6.x/ThreadPools#Using-the-default-thread-pool – juanmirocks

+0

Ancak, daha fazlası var. 'CustomExecutionContext' öğesini de genişletebilir/tanımlayabilirsiniz. Bkz .: https://www.playframework.com/documentation/2.6.x/Migration26#play.api.libs.concurrent.Execution-is-deprecated ve https://www.playframework.com/documentation/2.6.x/ Highlights26 # CustomExecutionContext-ve-Konu-Pool-Boyutlandırma – juanmirocks

İlgili konular