serverRole.js 994 B

1234567891011121314151617181920212223242526272829303132333435
  1. const config = require('../config.json')
  2. const VALID_ROLES = new Set(['all', 'api', 'worker'])
  3. /**
  4. * 进程角色:all=API+乐跑Worker一体;api=仅HTTP入队;worker=仅消费乐跑任务
  5. * 环境变量 RUNFORGE_SERVER_ROLE 优先于 config.serverRole
  6. */
  7. function resolveServerRole() {
  8. const raw = process.env.RUNFORGE_SERVER_ROLE || config.serverRole || 'all'
  9. const role = String(raw).toLowerCase()
  10. if (VALID_ROLES.has(role)) return role
  11. console.warn(`[serverRole] 未知值 "${raw}",回退为 all`)
  12. return 'all'
  13. }
  14. function shouldServeApi(role) {
  15. return role === 'all' || role === 'api'
  16. }
  17. function shouldRunLepaoWorker(role) {
  18. return role === 'all' || role === 'worker'
  19. }
  20. /** 订单支付 MQ 消费者仅在 all 进程运行;api 只入队不消费 */
  21. function shouldRunOrderPaymentWorker(role) {
  22. return role === 'all'
  23. }
  24. module.exports = {
  25. resolveServerRole,
  26. shouldServeApi,
  27. shouldRunLepaoWorker,
  28. shouldRunOrderPaymentWorker
  29. }