The Agent¶
Overview¶
The Agent compiles c/c++ source code to object files. It can have this work delegated to it by :
- the Hook for locally-initiated builds
- from other remote Agents via instruction from the Scheduler
It communicates, via network sockets, with the Scheduler which decides where the work should be processed.
Its filename is bin\turbo-agent.exe. It is installed and runs as a Windows Service called Turbo Agent.
Detection and Caching of Visual Studio Environments¶
On startup of the Agent service it will automatically detect for local Visual Studio installations on this machine. For each VS installation it will detect the supported :
- Target Architectures
- VS Tools versions
- Windows SDK versions
The loading of each combination of these criteria can take approximately 2 seconds.
There is a configuration parameter <build_environments pre_load_on_startup=""/> to define the loading behaviour :
<config>
<builder>
<!-- Optional. Pre-Load the Build Environment information on Agent startup
(i.e. Visual Studio PlatformVers, WinSDKvers).
Options are [ all | latest | none ].
Default is "latest".
Note: if a build requires a Build Environment that is not loaded,
then it will be loaded on-demand.
<build_environments pre_load_on_startup="latest"/>
-->
<build_environments pre_load_on_startup="latest"/>
</builder>
</config>
To preload only the "latest" build environments, is the default. For a machine with 3 Visual Studio installations this will take approximately 20 seconds on startup of the service. If a build requires an older environment this will cause that environment to be loaded on-demand. This will take approximately 2 seconds. The environment is then cached ready for the next usage.
To preload "all" build environments, for a machine with 3 Visual Studio installations will take approximately 120 seconds on startup of the service.
If you alter one of your Visual Studio" installations it is recommended to restart the Agent* service to ensure it has the latest build environment information.
Offline Fallback Mode¶
If network communication to the Scheduler becomes disconnected then the Agent will revert to an Offline Fallback mode.
In this mode the Agent will continue to process any existing, assigned Build Jobs in its Build Queue. Any unscheduled Build Jobs will be assumed to be scheduled to this Agent.
This mode is intended to provide a seamless fallback to the Developers experience of the build. If communication to the Scheduler is lost, the build should continue without failure.
Configuration¶
See the config\turbo-agent.xml file.
The Agent stores temporary work files within the C:\ProgramData\Turbo\work-temp folder. These are purged perdiocally by the Agent according to the <builder><temporary_work_path_purge_older_than_days> configuration element.
For more details on the configuration files see Configuration for more details.
Also see Turbo Monitor Settings for possible configuration via the GUI.