All files / services/scheduler-service/src/temporal worker.js

0% Statements 0/22
0% Branches 0/2
0% Functions 0/4
0% Lines 0/19

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38                                                                           
const { Worker, NativeConnection } = require('@temporalio/worker');
const path = require('path');
const config = require('../config');
const activities = require('./activities');
 
async function runWorker() {
  console.log('[Scheduler-Worker] Starting...');
 
  const connection = await NativeConnection.connect({
    address: config.temporalAddress,
  });
 
  const worker = await Worker.create({
    connection,
    taskQueue: 'scheduler-activities',
    workflowsPath: path.join(__dirname, 'workflows.js'),
    activities,
    // Laisse le déclenchement planifié en vol se terminer avant l'arrêt forcé.
    shutdownGraceTime: '80s',
  });
 
  let shuttingDown = false;
  const shutdown = (signal) => {
    if (shuttingDown) return;
    shuttingDown = true;
    console.log(`[Scheduler-Worker] ${signal} received — draining in-flight activities (up to 80s)...`);
    worker.shutdown();
  };
  process.on('SIGINT', () => shutdown('SIGINT'));
  process.on('SIGTERM', () => shutdown('SIGTERM'));
 
  console.log('[Scheduler-Worker] Listening on scheduler-activities');
  await worker.run();
  console.log('[Scheduler-Worker] Worker stopped');
}
 
module.exports = { runWorker };