enqueueLepaoStartRun.js 902 B

1234567891011121314151617181920212223
  1. const mq = require('./index')
  2. const { assertRunforgeTaskIngress, publishRunforgeTask } = require('./runforgeTaskMq')
  3. const mqNames = require('./jkesMqNames')
  4. const { buildStartRunPayload } = require('../jkes/prepareAutoRunTask')
  5. /**
  6. * 将乐跑任务写入 MQ,由 Worker 执行(JKES)
  7. * @returns {Promise<boolean>} 是否投递成功
  8. */
  9. async function enqueueLepaoStartRun(studentNum, logger, options = {}) {
  10. try {
  11. const channel = await mq.getChannel(mqNames.channelAccountAutorun)
  12. await assertRunforgeTaskIngress(channel, logger)
  13. const payload = buildStartRunPayload(studentNum, options, { prefix: 'lepao:account' })
  14. publishRunforgeTask(channel, payload)
  15. return true
  16. } catch (e) {
  17. logger?.error?.(`投递自动乐跑任务失败 ${studentNum}: ${e.message || e}`)
  18. return false
  19. }
  20. }
  21. module.exports = { enqueueLepaoStartRun }