Wiki source code of Building Concurrent Applications with WebObjects and Scala
Version 135.1 by Ravi Mendis on 2010/03/04 00:17
Hide last authors
| author | version | line-number | content |
|---|---|---|---|
| |
133.1 | 1 | Given that todays processors ship with dual or quad cores and server processors ship with between 8 to 32 cores, languages like Java, Ruby, Groovy and Python are struggling to keep up. |
| |
50.1 | 2 | |
| |
133.1 | 3 | Scala, as its name suggests is built from the ground-up for concurrent programming - a methodology that can take advantage of these modern multi-core processors. |
| 4 | |||
| |
125.1 | 5 | If you use Scala for a concurrent programming, the chances are that you're using Scala Actor to do that. |
| |
50.1 | 6 | |
| |
135.1 | 7 | {{info}} |
| 8 | |||
| 9 | Concurrent programming in Scala is based on *Actors* and mailboxes - a common metaphor that is alternatively known as *Message Queues*. | ||
| 10 | |||
| 11 | {{/info}} | ||
| 12 | |||
| |
50.1 | 13 | == Using Scala Actors with EOF == |
| 14 | |||
| |
119.1 | 15 | EOF being notoriously single-threaded, is incredibly unsuitable for use by Scala Actors. |
| 16 | Instead you may still use EOF but only to execute SQL directly. | ||
| |
50.1 | 17 | |
| |
73.1 | 18 | === Using EOAccess to execute SQL === |
| |
50.1 | 19 | |
| 20 | Use Wonder API: [[ERXEOAccessUtilities.evaluateSQLWithEntityNamed()>>http://webobjects.mdimension.com/hudson/job/Wonder53/javadoc/er/extensions/eof/ERXEOAccessUtilities.html#evaluateSQLWithEntity(com.webobjects.eocontrol.EOEditingContext,%20com.webobjects.eoaccess.EOEntity,%20java.lang.String)]] | ||
| |
135.1 | 21 | |
| 22 | ==== Caveats ==== | ||
| 23 | |||
| 24 | If you're updating the state of EOs directly using SQL from Scala Actors, you will subsequently need to refresh/refetch these EOs from the WebObjects application. |