8.9 Background Tasks
A Background Task is an operation that is run by the system in the background of your work, so as not to force you to wait for the task to complete you are able to continue working while the operation finishes.
The Background Tasks area of risr/assess shows you a comprehensive list of all tasks that been completed by the system and provides details about the task for efficient management and review, this includes a status of the task.
Given the diverse range of actions performed on our server, from user interactions to complex backend processes, it's challenging to specify precisely the number and type of tasks it can handle simultaneously. The server's capacity to manage tasks at any given moment is influenced by a variety of factors, including the complexity of individual tasks, the overall demand on the system, and the dynamic allocation of resources. This variability means that while we design our servers for optimal performance, the exact workload they can support at any single point in time can fluctuate based on real-time conditions and requirements.
To ensure optimal performance and a seamless experience for all users, it's crucial to avoid overloading the server with tasks, particularly during exam periods. Overburdening the server can lead to slower response times and may impact the overall functionality, affecting both administrators and exam participants. We recommend scheduling intensive tasks, such as bulk data processing or large-scale item management, outside of peak exam times. By doing so, we can maintain the server's efficiency and reliability, providing a stable and responsive environment for conducting exams and accessing real-time data.
The risr/assess server handles requests in a number of different ways depending on the urgency and resource requirements of the task.
Front-End Server
The server primarily focuses on user interactions and interface rendering. This includes:
Adding and managing exam content
Configuring exams and marking responses
Viewing results and monitoring exam progress
Performance factors include user volume, task complexity, and server capacity. Examples include:
the number of exam administrators on the application,
the number of exams in progress and the number of candidates and examiners, and
the nature of the exam.
In the context of exams, which often entail the submission of numerous responses, our system initially conducts minimal processing on these responses as soon as they are received. This initial step ensures that the responses can be promptly displayed on the live dashboard, providing real-time feedback and updates. Subsequently, these responses undergo a more thorough processing phase, after which they are properly stored in the database.
Queued Tasks
For more resource-intensive tasks, our server employs a queuing system, allowing it to remain responsive. These tasks include:
Bulk transitioning, editing and tagging items
Importing and exporting items
Importing and exporting user data (Candidates, Examiners and Role Players)
Creating examination papers
Combining exams
Pushing exams
Converting, merging and removing remote OSCE video files
Importing and exporting results and statistics
Creating reports (e.g. candidate feedback reports, emailing candidates, item response reports, item cut score reports, Rasch reports, examiner statistic reports, exam analysis reports, marking reports, etc)
These tasks are managed on a first-come, first-served basis, with their progress status shown in the task management screen and as a percentage progress indicator on the page initiating the task.
Supporting services
In addition to the above, there are additional services such as the database, PDF generators, antivirus systems, web server etc., which play a crucial role in task processing efficiency.
Worker Threads
Each client instance has a set number of worker threads, allowing for simultaneous task processing. Priority is given to immediate front-end user requests, while queued tasks are allocated a maximum number of threads based on availability.