RemoteRunner

. GtRemoteRunner Object << #GtRemoteRunner traits: {TGtWithAnnouncementsQueue}; slots: { #port . #server . #jobStartupAndShutdown . #managerStartupAndShutdown . #availableWorkers . #currentlyExecutingJobs . #currentlyExecutingTasks . #sharedAccess . #registeredWorkers . #taskTimeout . #workerTimeout . #jobTimeout . #timeoutManager . #announcer . #runnerStats . #log . #taskQueue . #changesSyncEvents . #announcementNotifier . #logEmitter }; tag: 'Runner'; package: 'RemoteRunner' is responsible for scheduling tasks in one or more workers. The workers may be in the same image as the runner, but are typically separate processes, sometimes on different hardware.

Tasks are instances of GtRrTask Object << #GtRrTask slots: { #constraint . #result . #taskId . #taskTimeout . #retryStrategy . #executionData . #properties }; tag: 'Tasks'; package: 'RemoteRunner' and are the unit of work handed out to a workers, Examples of tasks include:

Evaluating a script (GtRrScriptTask GtRrTask << #GtRrScriptTask slots: { #script }; tag: 'Tasks'; package: 'RemoteRunner' ).

Synchronising code between the runner and workers (GtRrCodeSyncTask GtRrTask << #GtRrCodeSyncTask slots: {}; tag: 'Runner-CodeSync'; package: 'RemoteRunner' ).

Running checks, e.g. GtExample Object << #GtExample slots: { #providerClass . #methodClass . #selector . #label . #description . #form . #exceptions . #subjects . #children . #properties . #after . #problems . #timeLimit }; tag: 'Core'; package: 'GToolkit-Examples' s and SUnit TestCase TestAsserter << #TestCase slots: { #testSelector . #expectedFails }; sharedVariables: { #HistoryAnnouncer . #DefaultTimeLimit . #Announcers }; tag: 'Kernel'; package: 'SUnit-Core' s.

Accessing the default remote runner will start one or more workers on the local machine, based on the amount of free resources (CPU & RAM) (see GtRrResourceWorkerCountCalculator GtRrWorkerCountCalculator << #GtRrResourceWorkerCountCalculator slots: {}; tag: 'WorkerCount'; package: 'RemoteRunner' ).

The default worker has code synchronisation enabled, allowing tasks to be run in the workers with the same code base as the runner, i.e. what is desired for a typical development environment.

To specify site specific configuration that should be performed on each worker, see RemoteRunner: worker startup scripts.

The summary view of the runner shows the number of workers and current activity.

As an example, running a cript in a worker may be performed with:

GtRemoteRunner default submitJob:
	(GtRrJob script: 'GtOsSystemInfo current currentProcessId')
  

Additional information is provided in the pages below: