[Unit]
Description=zhixi NestJS Worker (BullMQ Processor)
After=network.target mysql.service redis.service
Wants=mysql.service redis.service
# Start after API is up (API runs Prisma migration on start)
After=zhixi-nest-api.service

[Service]
Type=simple
User=ubuntu
Group=ubuntu
WorkingDirectory=/opt/zhixi/backend
ExecStart=/usr/bin/node dist/src/worker.main.js
Restart=always
RestartSec=10
TimeoutStopSec=60
# Worker needs extra time: BullMQ graceful shutdown waits for active jobs,
# then SIGKILL from systemd after TimeoutStopSec provides hard deadline.

# Environment
Environment=NODE_ENV=production
EnvironmentFile=/opt/zhixi/env/.env.production

# Memory limit (Worker jobs may consume memory)
MemoryMax=512M

# Security
NoNewPrivileges=yes

# Logging
StandardOutput=journal
StandardError=journal
SyslogIdentifier=zhixi-nest-worker

[Install]
WantedBy=multi-user.target
