enqueueLepaoStartRun.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334
  1. const mq = require('./index')
  2. const { assertRunforgeTaskIngress, publishRunforgeTask } = require('./runforgeTaskMq')
  3. const mqNames = require('./jkesMqNames')
  4. /**
  5. * 将乐跑任务写入 MQ,由 Worker 执行(JKES)
  6. */
  7. async function enqueueLepaoStartRun(studentNum, logger, options = {}) {
  8. try {
  9. const channel = await mq.getChannel(mqNames.channelAccountAutorun)
  10. await assertRunforgeTaskIngress(channel, logger)
  11. const taskId = `lepao:account:${Date.now()}:${studentNum}`
  12. const data = {
  13. taskId,
  14. account: studentNum
  15. }
  16. if (options.targetKm != null) {
  17. data.targetKm = options.targetKm
  18. }
  19. if (options.autoDoubleSlot) {
  20. data.autoDoubleSlot = true
  21. }
  22. publishRunforgeTask(channel, {
  23. id: taskId,
  24. type: 'lepao.startRun',
  25. data,
  26. retry: 0
  27. })
  28. } catch (e) {
  29. logger?.error?.(`投递自动乐跑任务失败 ${studentNum}: ${e.message || e}`)
  30. }
  31. }
  32. module.exports = { enqueueLepaoStartRun }