Skip to content

Commit 7552811

Browse files
committed
添加任务自动注册
1 parent 7ef0623 commit 7552811

5 files changed

Lines changed: 9 additions & 11 deletions

File tree

app/middleware/celery_app.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222
backend=f"redis://:{db_password}@{redis_host}:{redis_port}/{redis_db}",
2323
)
2424

25+
celery_app.autodiscover_tasks(packages=["app.tasks"])
26+
2527
celery_app.conf.update(
2628
task_serializer="json",
2729
accept_content=["json"],

app/middleware/celery_beat.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
from celery.schedules import crontab
2-
from app.middleware import celery_app
1+
from app.middleware.celery_app import celery_app
32

43
celery_app.conf.beat_schedule = {
54
"poll-sqlmap-tasks-every-5-seconds": {

app/tasks/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
from . import sqlmap_scheduler
2+
from . import sqlmap_worker

app/tasks/sqlmap_scheduler.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
1-
from sqlalchemy import select
2-
from app.middleware.celery_app import celery_app
1+
from celery import shared_task
32
from app.database.celery_sync_database import SessionLocal
43
from app.models.sqlmap_result import SqlmapScanPayload, ScanStatus
54
from app.tasks.sqlmap_worker import poll_single_sqlmap_task
65

76

8-
@celery_app.task(name="app.tasks.sqlmap_scheduler.poll_active_sqlmap_tasks")
7+
@shared_task
98
def poll_active_sqlmap_tasks():
109
with SessionLocal() as session:
1110
tasks = (

app/tasks/sqlmap_worker.py

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,9 @@
11
import requests
22
from datetime import datetime
3-
from sqlalchemy.exc import SQLAlchemyError
4-
5-
from app.middleware.celery_app import celery_app
3+
from celery import shared_task
64
from app.database.celery_sync_database import SessionLocal
75
from app.models.sqlmap_result import (
86
SqlmapScanPayload,
9-
SqlmapScanLog,
107
ScanStatus,
118
SqlmapScanResult,
129
)
@@ -57,12 +54,11 @@ def normalize_sqlmap_result(raw: dict) -> dict:
5754
return result
5855

5956

60-
@celery_app.task(
57+
@shared_task(
6158
bind=True,
6259
autoretry_for=(Exception,),
6360
retry_backoff=5,
6461
retry_kwargs={"max_retries": 3},
65-
name="app.tasks.sqlmap_worker.poll_single_sqlmap_task",
6662
)
6763
def poll_single_sqlmap_task(self, task_id: str):
6864
session = SessionLocal()

0 commit comments

Comments
 (0)