क्या कोई गाइड या ट्यूटोरियल हैं जो स्कैला कलाकारों को दूरस्थ रूप से उपयोग करने की संभावना बताते हैं? सब कुछ मैंने पाया है अब तक एक उदाहरण है (टिप्पणियों के बिना) लेकिन यह शायद ही पर्याप्त है।स्कैला रिमोट एक्टर्स
उत्तर
मैंने कुछ समय पहले an article with an example app to explain the use of Remote Actors लिखा है।
ठीक है, इस कोड के अंदर कोई टिप्पणी नहीं है (शायद आप उस लेख का भी अर्थ है), लेकिन कोड के नीचे स्पष्टीकरण हैं।
मेरे कोड के आधार पर एक और नया उदाहरण है लेकिन यह सरल है और यह क्लासपाथ मैन्युअल रूप से सेट करता है जो समस्याओं से बचाता है: http : //youshottheinvisibleswordsman.co.uk/2009/04/01/remoteactor-in-scala/ – dmeister
dmeister आप ब्लॉग के साथ क्या हुआ? –
ऐसा लगता है कि आपका लिंक टूट गया था।क्या आप इसे ठीक कर सकते हैं, साथ ही साथ जो भी आप लिंक कर रहे हैं उसे पैराफ्रेश कर सकते हैं ताकि लिंक फिर से मरने पर जानकारी वैध रहे? –
इनमें से कोई भी मुझे पता नहीं है। यह बहुत अधिक है "जंगल के माध्यम से अपना रास्ता हैक" दृष्टिकोण। एपीआई से निर्णय लेते हुए, चीजों को नियमित अभिनेताओं के समान ही काम करना चाहिए, जिसके लिए एक या दो ट्यूटोरियल मौजूद हैं (साथ ही साथ कुछ किताबें)।
यदि आप रिमोट एक्टर्स का उपयोग करते हैं, तो हम (समुदाय) निश्चित रूप से अनुभवी उपयोगकर्ता से ऐसे ट्यूटोरियल का स्वागत करेंगे!
बस उन संदेशों को भेजने के लिए सावधान रहें जो serializable (केस क्लास और केस ऑब्जेक्ट्स हैं!) और सुनिश्चित करें कि विपरीत पक्ष कक्षा बना सकता है। कस्टम क्लासलोडर्स के लिए देखें या क्लासपाथ में जेएआर खो रहे हैं।
अक्का ढांचे में remote actors है। एपीआई नियमित स्कैला कलाकारों के समान ही है।
वे स्वचालित क्लस्टरिंग के कुछ स्तर भी प्रदान करते हैं, लेकिन यह पूरा नहीं हुआ है।
हाल ही में वहाँ एक गाइड www.scala-lang.org के पहले पन्ने पर जोड़ा गया है, यहाँ लिंक http://www.scala-lang.org/docu/files/actors-api/actors_api_guide.html#
हो सकता है कि यह एक necropost है, लेकिन मैं सब कुछ खत्म हो लिए देख रहा था और बहुत ज्यादा नहीं मिल सकता है । उम्मीद है कि यह किसी की मदद करेगा।
मैं चला रहा हूँ मैक ओएस 10.6.8 और स्काला 2.9.0.1। मुझे कैननिकल रिमोट एक्टर्स उदाहरण चलने में समस्याएं थीं। मैं निम्नलिखित कोड के साथ समाप्त हो गया।
नोट:स्पष्ट विधि सिर्फ ढेर से संदेश को रोकने के लिए है। उदाहरण के लिए यह महत्वपूर्ण नहीं है। इसी प्रकार पर कॉल थ्रेड.sleep रनटाइम पर क्या चल रहा है यह देखने में आसान है।
यह संकलित करें, तो अलग खोल उदाहरणों कार्य करें:
$> scala Ping
और
$> scala Pong
किसी भी क्रम में
। आप एक समय में उनमें से एक को मारकर और कोड का पता लगाकर प्रयोग कर सकते हैं।
import scala.actors._
import scala.actors.Actor._
import scala.actors.remote._
import scala.actors.remote.RemoteActor._
/** @author Connor Doyle */
// Remote messages must be serializable.
// The easist way to do this is to wrap
// them with a case class
case class Message(text: String)
abstract class PingPongActor extends Actor with App {
val pingPort = 9000
val pongPort = 9001
val delay = 1000
classLoader = getClass().getClassLoader() // hack!
start
// this method consumes all pending messages
// the library should have implemented an atomic
// receiveAndClear operation
def clear: Unit = receiveWithin(0) {
case TIMEOUT =>()
case _ => clear
}
}
object Ping extends PingPongActor {
// result of select already lazy, but explicit lazy conveys
// semantics clearly
lazy val pong = select(Node("localhost", pongPort), 'pong)
def act = {
alive(pingPort)
register('ping, self)
loop {
pong ! Message("ping")
receiveWithin(delay * 2) {
case Message(text: String) => {
clear
println("received: "+text)
Thread.sleep(delay) // wait a while
}
case TIMEOUT => println("ping: timed out!")
}
}
}
}
object Pong extends PingPongActor {
lazy val ping = select(Node("localhost", pingPort), 'ping)
def act = {
alive(pongPort)
register('pong, self)
loop {
receiveWithin(delay * 2) {
case Message(text: String) => {
println("received: "+text)
Thread.sleep(delay) // wait a while
clear
ping ! Message("pong")
}
case TIMEOUT => println("pong: timed out")
}
}
}
}
चीयर्स!
पुन: निरीक्षण में, सिस्टम बनाने के लिए अभिनेताओं का उपयोग करने के बाद, ज्यादातर मामलों में "परमाणु प्राप्त और स्पष्ट" ऑपरेशन एक भयानक विचार होगा। –
- 1. प्रोग्राम कई रिमोट एक्टर्स
- 2. स्कैला रिमोट एक्टर सुरक्षा
- 3. क्या अक्का इवेंटबस रिमोट एक्टर्स के साथ काम करता है?
- 4. एक स्कैला रिमोट अभिनेता अपवाद
- 5. विभिन्न स्कैला अभिनेता कार्यान्वयन अवलोकन
- 6. अक्का रिमोट अभिनेता सर्वर डिस्कवरी
- 7. मैं फास्ट स्कैला कंपाइलर रिमोट सर्वर कैसे चला सकता हूं?
- 8. स्थानीय बनाम रिमोट अभिनेताओं का उपयोग कब करें?
- 9. रिमोट
- 10. आर के साथ रिमोट संचार - रिमोट सर्वर
- 11. गिट रिमोट शाखा और रिमोट रेफ
- 12. स्कैला
- 13. स्कैला
- 14. स्कैला
- 15. स्कैला:
- 16. स्कैला
- 17. स्कैला
- 18. स्कैला
- 19. स्कैला:
- 20. स्कैला
- 21. स्कैला
- 22. स्कैला
- 23. स्कैला
- 24. स्कैला
- 25. स्कैला
- 26. स्कैला
- 27. स्कैला
- 28. स्कैला
- 29. स्कैला
- 30. स्कैला
हालिया प्रलेखन: http://docs.scala-lang.org/overviews/core/actors.html#remote_actors – ekillaby