mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2026-09-27 06:37:16 +02:00
romm: run rq cron and a scans worker for RomM 5.3 (#17502)
RomM 5.3.0 dropped rq-scheduler (rommapp/romm@4e5921727), so romm-scheduler.service fails with 203/EXEC on a missing .venv/bin/rqscheduler. The same release moved scans to their own "scans" queue (rommapp/romm@3593d2398), which the LXC worker never listened on, so scans queued but never ran. Match upstream's docker init: the scheduler service runs `rq cron tasks.cron_config`, both workers run with --with-scheduler so delayed jobs (watcher rescans) are released, and a new romm-scan-worker.service consumes the scans queue. The update script migrates existing units when romm-scheduler.service still references rqscheduler. It runs before the release check, so installs already on 5.3.x get repaired too. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
+19
-3
@@ -40,9 +40,25 @@ function update_script() {
|
||||
|
||||
NODE_VERSION="24" setup_nodejs
|
||||
|
||||
# RomM 5.3.0 replaced rq-scheduler with `rq cron` and moved scans to their own queue
|
||||
if grep -q rqscheduler /etc/systemd/system/romm-scheduler.service 2>/dev/null; then
|
||||
msg_info "Migrating RQ services"
|
||||
sed -i -e '/RQ_REDIS_/d' \
|
||||
-e 's|^ExecStart=.*|ExecStart=/opt/romm/.venv/bin/rq cron --path /opt/romm/backend --url redis://127.0.0.1:6379/0 tasks.cron_config|' \
|
||||
/etc/systemd/system/romm-scheduler.service
|
||||
sed -i 's|bin/rq worker --path|bin/rq worker --with-scheduler --path|' /etc/systemd/system/romm-worker.service
|
||||
sed -e 's|^Description=.*|Description=RomM RQ Scan Worker|' \
|
||||
-e 's|^ExecStart=.*|ExecStart=/opt/romm/.venv/bin/rq worker --with-scheduler --path /opt/romm/backend --url redis://127.0.0.1:6379/0 scans|' \
|
||||
/etc/systemd/system/romm-worker.service >/etc/systemd/system/romm-scan-worker.service
|
||||
systemctl daemon-reload
|
||||
systemctl enable -q --now romm-scan-worker
|
||||
systemctl restart romm-worker romm-scheduler
|
||||
msg_ok "Migrated RQ services"
|
||||
fi
|
||||
|
||||
if check_for_gh_release "romm" "rommapp/romm"; then
|
||||
msg_info "Stopping Services"
|
||||
systemctl stop romm-backend romm-worker romm-scheduler romm-watcher
|
||||
systemctl stop romm-backend romm-worker romm-scan-worker romm-scheduler romm-watcher
|
||||
msg_ok "Stopped Services"
|
||||
|
||||
create_backup /opt/romm/.env
|
||||
@@ -231,14 +247,14 @@ DROPEOF
|
||||
fi
|
||||
|
||||
msg_info "Starting Services"
|
||||
systemctl start romm-backend romm-worker romm-scheduler romm-watcher
|
||||
systemctl start romm-backend romm-worker romm-scan-worker romm-scheduler romm-watcher
|
||||
msg_ok "Started Services"
|
||||
msg_ok "Updated successfully"
|
||||
fi
|
||||
|
||||
if check_for_gh_release "EmulatorJS" "EmulatorJS/EmulatorJS" "v4.2.3"; then
|
||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "EmulatorJS" "EmulatorJS/EmulatorJS" "prebuild" "v4.2.3" "/opt/romm/frontend/dist/assets/emulatorjs" "4.2.3.7z"
|
||||
systemctl restart romm-backend romm-worker romm-scheduler romm-watcher
|
||||
systemctl restart romm-backend romm-worker romm-scan-worker romm-scheduler romm-watcher
|
||||
msg_ok "Updated EmulatorJS successfully"
|
||||
fi
|
||||
exit
|
||||
|
||||
+22
-5
@@ -381,7 +381,26 @@ Type=simple
|
||||
WorkingDirectory=/opt/romm/backend
|
||||
EnvironmentFile=/opt/romm/.env
|
||||
Environment="PYTHONPATH=/opt/romm/backend"
|
||||
ExecStart=/opt/romm/.venv/bin/rq worker --path /opt/romm/backend --url redis://127.0.0.1:6379/0 high default low
|
||||
ExecStart=/opt/romm/.venv/bin/rq worker --with-scheduler --path /opt/romm/backend --url redis://127.0.0.1:6379/0 high default low
|
||||
Restart=on-failure
|
||||
RestartSec=5
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
|
||||
cat <<EOF >/etc/systemd/system/romm-scan-worker.service
|
||||
[Unit]
|
||||
Description=RomM RQ Scan Worker
|
||||
After=network.target mariadb.service redis-server.service romm-backend.service
|
||||
Requires=mariadb.service redis-server.service
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
WorkingDirectory=/opt/romm/backend
|
||||
EnvironmentFile=/opt/romm/.env
|
||||
Environment="PYTHONPATH=/opt/romm/backend"
|
||||
ExecStart=/opt/romm/.venv/bin/rq worker --with-scheduler --path /opt/romm/backend --url redis://127.0.0.1:6379/0 scans
|
||||
Restart=on-failure
|
||||
RestartSec=5
|
||||
|
||||
@@ -400,9 +419,7 @@ Type=simple
|
||||
WorkingDirectory=/opt/romm/backend
|
||||
EnvironmentFile=/opt/romm/.env
|
||||
Environment="PYTHONPATH=/opt/romm/backend"
|
||||
Environment="RQ_REDIS_HOST=127.0.0.1"
|
||||
Environment="RQ_REDIS_PORT=6379"
|
||||
ExecStart=/opt/romm/.venv/bin/rqscheduler --path /opt/romm/backend
|
||||
ExecStart=/opt/romm/.venv/bin/rq cron --path /opt/romm/backend --url redis://127.0.0.1:6379/0 tasks.cron_config
|
||||
Restart=on-failure
|
||||
RestartSec=5
|
||||
|
||||
@@ -429,7 +446,7 @@ RestartSec=5
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
|
||||
systemctl enable -q --now romm-backend romm-worker romm-scheduler romm-watcher
|
||||
systemctl enable -q --now romm-backend romm-worker romm-scan-worker romm-scheduler romm-watcher
|
||||
msg_ok "Created Services"
|
||||
|
||||
motd_ssh
|
||||
|
||||
Reference in New Issue
Block a user