trait Worker extends Object with IEventEmitter
A Worker object contains all public information and method about a worker. In the master it can be obtained using cluster.workers. In a worker it can be obtained using cluster.worker.
- Annotations
- @JSType() @native()
- Alphabetic
- By Inheritance
- Worker
- IEventEmitter
- Object
- Any
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
addListener(eventName: String, listener: Function): Worker.this.type
Alias for emitter.on(eventName, listener).
Alias for emitter.on(eventName, listener).
- Definition Classes
- IEventEmitter
emitter.addListener(eventName, listener)
- See also
on()
Example: -
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
def
disconnect(): Unit
In a worker, this function will close all servers, wait for the 'close' event on those servers, and then disconnect the IPC channel.
In a worker, this function will close all servers, wait for the 'close' event on those servers, and then disconnect the IPC channel.
In the master, an internal message is sent to the worker causing it to call .disconnect() on itself. Causes .exitedAfterDisconnect to be set.
Note that after a server is closed, it will no longer accept new connections, but connections may be accepted by any other listening worker. Existing connections will be allowed to close as usual. When no more connections exist, see server.close(), the IPC channel to the worker will close allowing it to die gracefully.
The above applies only to server connections, client connections are not automatically closed by workers, and disconnect does not wait for them to close before exiting.
Note that in a worker, process.disconnect exists, but it is not this function, it is disconnect.
Because long living server connections may block workers from disconnecting, it may be useful to send a message, so application specific actions may be taken to close them. It also may be useful to implement a timeout, killing a worker if the 'disconnect' event has not been emitted after some time.
-
val
domain: Domain
- Definition Classes
- IEventEmitter
-
def
emit(name: String, args: Any*): Boolean
Synchronously calls each of the listeners registered for the event named eventName, in the order they were registered, passing the supplied arguments to each.
Synchronously calls each of the listeners registered for the event named eventName, in the order they were registered, passing the supplied arguments to each.
Returns true if the event had listeners, false otherwise.
- name
the event name
- args
the event arguments
- Definition Classes
- IEventEmitter
emitter.emit(name[, arg1][, arg2][, ...])
Example: -
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
eventNames(): Array[String]
- Definition Classes
- IEventEmitter
-
def
exitedAfterDisconnect: UndefOr[Boolean]
Set by calling .kill() or .disconnect().
Set by calling .kill() or .disconnect(). Until then, it is undefined.
The boolean worker.exitedAfterDisconnect lets you distinguish between voluntary and accidental exit, the master may choose not to respawn a worker based on this value.
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
getMaxListeners(): Int
Returns the current max listener value for the EventEmitter which is either set by emitter.setMaxListeners(n) or defaults to EventEmitter.defaultMaxListeners.
Returns the current max listener value for the EventEmitter which is either set by emitter.setMaxListeners(n) or defaults to EventEmitter.defaultMaxListeners.
- Definition Classes
- IEventEmitter
emitter.getMaxListeners()
- See also
setMaxListeners()
Example: -
def
hasOwnProperty(v: String): Boolean
- Definition Classes
- Object
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
id: Int
Each new worker is given its own unique id, this id is stored in the id.
Each new worker is given its own unique id, this id is stored in the id. While a worker is alive, this is the key that indexes it in cluster.workers
-
def
isConnected(): Boolean
This function returns true if the worker is connected to its master via its IPC channel, false otherwise.
This function returns true if the worker is connected to its master via its IPC channel, false otherwise. A worker is connected to its master after it's been created. It is disconnected after the 'disconnect' event is emitted.
-
def
isDead(): Boolean
This function returns true if the worker's process has terminated (either because of exiting or being signaled).
This function returns true if the worker's process has terminated (either because of exiting or being signaled). Otherwise, it returns false.
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
isPrototypeOf(v: Object): Boolean
- Definition Classes
- Object
- def kill(): Unit
-
def
kill(signal: String): Unit
This function will kill the worker.
This function will kill the worker. In the master, it does this by disconnecting the worker.process, and once disconnected, killing with signal. In the worker, it does it by disconnecting the channel, and then exiting with code 0.
Causes .exitedAfterDisconnect to be set. This method is aliased as worker.destroy() for backwards compatibility.
Note that in a worker, process.kill() exists, but it is not this function, it is kill.
- signal
the name of the kill signal to send to the worker process.
kill([signal='SIGTERM'])
Example: -
def
listenerCount(eventName: String): Int
Returns the number of listeners listening to the event named eventName.
Returns the number of listeners listening to the event named eventName.
- Definition Classes
- IEventEmitter
emitter.listenerCount(eventName)
Example: -
def
listeners(eventName: String): Array[Function]
Returns a copy of the array of listeners for the event named eventName.
Returns a copy of the array of listeners for the event named eventName.
- Definition Classes
- IEventEmitter
emitter.listeners(eventName)
Example: -
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
def
off(eventName: String, listner: Function): Worker.this.type
- Definition Classes
- IEventEmitter
-
def
on(eventName: String, listener: Function): Worker.this.type
Adds the listener function to the end of the listeners array for the event named eventName.
Adds the listener function to the end of the listeners array for the event named eventName. No checks are made to see if the listener has already been added. Multiple calls passing the same combination of eventName and listener will result in the listener being added, and called, multiple times.
Returns a reference to the EventEmitter so calls can be chained.
- Definition Classes
- IEventEmitter
emitter.on(eventName, listener)
Example: -
def
once(eventName: String, listener: Function): Worker.this.type
Adds a one time listener function for the event named eventName.
Adds a one time listener function for the event named eventName. This listener is invoked only the next time eventName is triggered, after which it is removed.
- Definition Classes
- IEventEmitter
emitter.once(eventName, listener)
Example: -
def
prependListener(eventName: String, listener: Function): Worker.this.type
- Definition Classes
- IEventEmitter
-
def
prependOnceListener(eventName: String, listener: Function): Worker.this.type
- Definition Classes
- IEventEmitter
-
def
process: ChildProcess
All workers are created using child_process.fork(), the returned object from this function is stored as .process.
All workers are created using child_process.fork(), the returned object from this function is stored as .process. In a worker, the global process is stored.
Note that workers will call process.exit(0) if the 'disconnect' event occurs on process and .exitedAfterDisconnect is not true. This protects against accidental disconnection.
-
def
propertyIsEnumerable(v: String): Boolean
- Definition Classes
- Object
-
def
rawListeners(eventName: String): Array[Function]
- Definition Classes
- IEventEmitter
-
def
removeAllListeners(): Worker.this.type
- Definition Classes
- IEventEmitter
-
def
removeAllListeners(eventName: String): Worker.this.type
Removes all listeners, or those of the specified eventName.
Removes all listeners, or those of the specified eventName.
Note that it is bad practice to remove listeners added elsewhere in the code, particularly when the EventEmitter instance was created by some other component or module (e.g. sockets or file streams).
Returns a reference to the EventEmitter so calls can be chained.
- Definition Classes
- IEventEmitter
emitter.removeAllListeners([eventName])
Example: -
def
removeListener(eventName: String, listener: Function): Worker.this.type
Removes the specified listener from the listener array for the event named eventName.
Removes the specified listener from the listener array for the event named eventName. removeListener will remove, at most, one instance of a listener from the listener array. If any single listener has been added multiple times to the listener array for the specified eventName, then removeListener must be called multiple times to remove each instance.
Note that once an event has been emitted, all listeners attached to it at the time of emitting will be called in order. This implies that any removeListener() or removeAllListeners() calls after emitting and before the last listener finishes execution will not remove them from emit() in progress. Subsequent events will behave as expected.
- Definition Classes
- IEventEmitter
emitter.removeListener(eventName, listener)
Example: - def send(message: Message): Unit
- def send(message: Message, sendHandle: Handle): Unit
- def send(message: Message, callback: Function): Unit
-
def
send(message: Message, sendHandle: Handle, callback: Function): Unit
Send a message to a worker or master, optionally with a handle.
Send a message to a worker or master, optionally with a handle. In the master this sends a message to a specific worker. It is identical to ChildProcess.send(). In a worker this sends a message to the master. It is identical to process.send().
worker.send(message[, sendHandle][, callback])
Example: -
def
setMaxListeners(n: Int): Worker.this.type
By default EventEmitters will print a warning if more than 10 listeners are added for a particular event.
By default EventEmitters will print a warning if more than 10 listeners are added for a particular event. This is a useful default that helps finding memory leaks. Obviously, not all events should be limited to just 10 listeners. The emitter.setMaxListeners() method allows the limit to be modified for this specific EventEmitter instance. The value can be set to Infinity (or 0) for to indicate an unlimited number of listeners.
Returns a reference to the EventEmitter so calls can be chained.
- Definition Classes
- IEventEmitter
emitter.setMaxListeners(n)
Example: -
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toLocaleString(): String
- Definition Classes
- Object
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
def
valueOf(): Any
- Definition Classes
- Object
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()