|
@@ -20,16 +20,21 @@ return [
|
|
|
| Workload Queue Names
|
|
| Workload Queue Names
|
|
|
|--------------------------------------------------------------------------
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
- | Defaults match the current multi-server production topology: only the PDF
|
|
|
|
|
- | worker fleet consumes "pdf" at scale, while the main server has one
|
|
|
|
|
- | default worker. Move analysis to another queue only after deploying
|
|
|
|
|
- | workers for that queue on the PDF/worker nodes.
|
|
|
|
|
|
|
+ | Production currently has only two consumed queues:
|
|
|
|
|
+ | - default: one worker on the main server for non-PDF background work.
|
|
|
|
|
+ | - pdf: nine workers across main/pdf-1/pdf-2 for PDFs and heavy analysis.
|
|
|
|
|
+ |
|
|
|
|
|
+ | Keep report-critical work on "pdf"; move only non-critical follow-up work
|
|
|
|
|
+ | away from the PDF worker fleet.
|
|
|
|
|
|
|
|
|
|
*/
|
|
*/
|
|
|
|
|
|
|
|
'workloads' => [
|
|
'workloads' => [
|
|
|
'pdf' => env('QUEUE_PDF', 'pdf'),
|
|
'pdf' => env('QUEUE_PDF', 'pdf'),
|
|
|
|
|
+ // Keep answer analysis on the scaled pdf worker fleet. Do not point
|
|
|
|
|
+ // this at default unless default workers are scaled out.
|
|
|
'exam_answer_analysis' => env('QUEUE_EXAM_ANSWER_ANALYSIS', 'pdf'),
|
|
'exam_answer_analysis' => env('QUEUE_EXAM_ANSWER_ANALYSIS', 'pdf'),
|
|
|
|
|
+ // This follow-up is not on the visible report-generation path.
|
|
|
'question_difficulty_calibration' => env('QUEUE_QUESTION_DIFFICULTY_CALIBRATION', 'default'),
|
|
'question_difficulty_calibration' => env('QUEUE_QUESTION_DIFFICULTY_CALIBRATION', 'default'),
|
|
|
'question_difficulty_calibration_delay_seconds' => (int) env('QUEUE_QUESTION_DIFFICULTY_CALIBRATION_DELAY_SECONDS', 30),
|
|
'question_difficulty_calibration_delay_seconds' => (int) env('QUEUE_QUESTION_DIFFICULTY_CALIBRATION_DELAY_SECONDS', 30),
|
|
|
],
|
|
],
|