Skip to content

Commit bd917ac

Browse files
authored
Migrate from rq-scheduler to new built-in CronScheduler (#435)
Signed-off-by: tdruez <tdruez@aboutcode.org>
1 parent 153f54b commit bd917ac

18 files changed

+66
-281
lines changed

dejacode/settings.py

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -566,11 +566,6 @@ def get_fake_redis_connection(config, use_strict_redis):
566566
"propagate": False,
567567
"level": DEJACODE_LOG_LEVEL,
568568
},
569-
"rq_scheduler.scheduler": {
570-
"handlers": ["null"] if IS_TESTS else ["console"],
571-
"propagate": False,
572-
"level": "DEBUG" if DEBUG else DEJACODE_LOG_LEVEL,
573-
},
574569
},
575570
}
576571

dje/cron_jobs.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
#
2+
# Copyright (c) nexB Inc. and others. All rights reserved.
3+
# DejaCode is a trademark of nexB Inc.
4+
# SPDX-License-Identifier: AGPL-3.0-only
5+
# See https://github.com/aboutcode-org/dejacode for support or download.
6+
# See https://aboutcode.org for more information about AboutCode FOSS projects.
7+
#
8+
9+
from django.conf import settings
10+
11+
from rq import cron
12+
13+
from dje.tasks import update_vulnerabilities
14+
15+
two_hour = 7200
16+
17+
cron.register(
18+
func=update_vulnerabilities,
19+
queue_name="default",
20+
cron=settings.DEJACODE_VULNERABILITIES_CRON, # Daily at 3am by default
21+
job_timeout=two_hour,
22+
)

dje/management/commands/setupcron.py

Lines changed: 0 additions & 86 deletions
This file was deleted.

dje/tasks.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ def scancodeio_submit_scan(uris, user_uuid, dataspace_uuid):
122122
scancodeio.submit_scan(uri, user_uuid, dataspace_uuid)
123123

124124

125-
@job("default", timeout="3h")
125+
@job("default", timeout=7200)
126126
def update_vulnerabilities():
127127
"""Fetch vulnerabilities for all Dataspaces that enable vulnerablecodedb access."""
128128
from vulnerabilities.fetch import fetch_from_vulnerablecode
@@ -133,4 +133,10 @@ def update_vulnerabilities():
133133

134134
for dataspace in dataspace_qs:
135135
logger.info(f"fetch_vulnerabilities for datapsace={dataspace}")
136-
fetch_from_vulnerablecode(dataspace, batch_size=50, update=True, timeout=60)
136+
fetch_from_vulnerablecode(
137+
dataspace,
138+
batch_size=50,
139+
update=True,
140+
timeout=60,
141+
log_func=logger.debug,
142+
)

docker-compose.yml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,9 +66,7 @@ services:
6666

6767
scheduler:
6868
build: .
69-
command: wait-for-it web:8000 -- sh -c "
70-
./manage.py setupcron &&
71-
./manage.py rqscheduler --interval=600"
69+
command: wait-for-it web:8000 -- sh -c "./manage.py rqcron dje.cron_jobs"
7270
env_file:
7371
- docker.env
7472
volumes:

pyproject.toml

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -80,14 +80,10 @@ dependencies = [
8080
# Testing
8181
"model_bakery==1.10.1",
8282
# Task queue
83-
"rq==2.6.0",
83+
"rq==2.6.1",
8484
"croniter==6.0.0",
85-
"django-rq==3.1.0",
85+
"django-rq==3.2.1",
8686
"fakeredis==2.32.1",
87-
# Scheduler
88-
"rq-scheduler==0.14.0",
89-
"crontab==1.0.5",
90-
"freezegun==1.5.2",
9187
# Libs
9288
"certifi==2025.11.12",
9389
"urllib3==2.5.0",
-21.4 KB
Binary file not shown.

thirdparty/dist/crontab-1.0.5.tar.gz.ABOUT

Lines changed: 0 additions & 150 deletions
This file was deleted.
60.4 KB
Binary file not shown.
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
about_resource: django_rq-3.2.1-py3-none-any.whl
2+
name: django-rq
3+
version: 3.2.1
4+
download_url: https://files.pythonhosted.org/packages/77/e1/c74a380907406146785131ccbe695b995161ba3ce899dbd8a54a7cd71d4b/django_rq-3.2.1-py3-none-any.whl
5+
package_url: pkg:pypi/django-rq@3.2.1
6+
license_expression: mit AND unknown-license-reference
7+
copyright: Copyright django-rq project contributors
8+
attribute: yes
9+
checksum_md5: 28eaea8cbf65da895741cf7eb251d391
10+
checksum_sha1: 2ecbe1c28f5d08b328aa33cda2bac499507539bb
11+
licenses:
12+
- key: mit
13+
name: MIT License
14+
file: mit.LICENSE
15+
- key: unknown-license-reference
16+
name: Unknown License file reference
17+
file: unknown-license-reference.LICENSE

0 commit comments

Comments
 (0)