SORU
10 EKİM 2009, CUMARTESİ


Scala aktörler kötü uygulamalar?

Biraz Scala aktörleri kullanma hakkında güvensiz hissediyorum. Bir şeyler yapmak için nasıl ilgili belgeleri okudum, ama aynı zamanda bazı ücretsiz bunları kullanmak için hissetmek için kuralları YOK ihtiyacım olacak sanırım. Yanlış bir şekilde onları kullanacağım diye korkuyorum ... düşünüyorum, ve bunu hiç fark etmiyorum.

Uygulanan bir şey,,, Scala aktörler Getirdiği Avantajlar, ya da hatalı sonuçlara bile kırılma neden olabilir mi?

CEVAP
12 EKİM 2009, PAZARTESİ


  • Önlemek!?mümkün olan her yerde. Sanakilitli bir sistem!

  • Her zaman Aktör-alt iş parçacığı bir mesaj gönderin. Eğer bu olursa Actor.actor yöntemi ile geçici bir Aktör yaratmak ise, o zaman öyle olsun:

    case ButtonClicked(src) => Actor.actor { controller ! SaveTrade(trdFld.text) }

  • Bir ekleyin< . em ^"başka bir mesaj"aktör tepkileri işleyicisi. Aksi halde yanlış oyuncu için bir mesaj varsa çözemedim

    case other => log.warning(this " has received unexpected message " other

  • Birincil aktörler için Actor.actor kullanmayın Actor yerine sublcass. Bunun nedeni toString mantıklı bir yöntem sağlayabilir sınıflara sadece olmasıdır. Yine, aktörler hata ayıklama eğer senin gibi ifadelerle doludur açtığında çok zor

    12:03 [INFO] Sending RequestTrades(2009-10-12) to scala.actors.Actor$anonfun$1

  • Sistem yanıt hesaplamak gerekir nasıl ve tam olarak alırlar ne açıkça belirten aktörler belge. Aktörler kullanarak standart bir prosedür (normalde bir yöntem kapsüllenmiş) dönüşüm çoklu oyuncu tepkileri karşısında mantık yayılmış olma sonuçları. Kolay güzel belgeleri olmadan kaybolmak.

  • Her zaman emin olun react durumuna bulmak için döngü dışında aktör ile iletişim kurabilirsiniz. Örneğin, ben her zaman aşağıdaki kod parçası gibi görünüyor MBean üzerinden çağrılacak bir yöntem bildirin. Aksi takdirde aktör çalışıyorsa söylemek çok zor olabilir, kapattı, mesajlar, vb büyük bir kuyruğu vardır.

.

def reportState = {
  val _this = this
  synchronized {
    val msg = "%s Received request to report state with %d items in mailbox".format(
                   _this, mailboxSize) 
    log.info(msg)
  }
  Actor.actor { _this ! ReportState }
}
  • Link aktörleri ve kullanımı trapExit = true - yoksa onlar sessizce başarısız anlamı programı değil ne düşündüğün ve muhtemelen dışarı bellek gibi mesajlar kalır oyuncu posta kutusu.

  • Aktörler kullanılarak yapılacak tasarım kararları etrafında diğer bazı ilginç seçenekler here here vurgulanmış bence

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Boiler Room

    Boiler Room

    10 Mayıs 2012
  • Dirty Loops

    Dirty Loops

    21 Mayıs 2007
  • FullMag

    FullMag

    15 ŞUBAT 2007