Jelajahi Sumber

developing celery app

luojunhui 2 bulan lalu
induk
melakukan
f7e5f2c7df
4 mengubah file dengan 46 tambahan dan 1 penghapusan
  1. 8 0
      celery_app.py
  2. 26 0
      celery_config.py
  3. 10 0
      celery_tasks.py
  4. 2 1
      requirements.txt

+ 8 - 0
celery_app.py

@@ -0,0 +1,8 @@
+from celery import Celery
+from celery_config import CELERY_CONFIG
+
+app = Celery('long_articles_tasks')
+app.conf.update(**CELERY_CONFIG)
+
+if __name__ == '__main__':
+    app.start()

+ 26 - 0
celery_config.py

@@ -0,0 +1,26 @@
+# Redis 作为 Broker 和 Backend
+BROKER_URL = 'redis://:Wqsd@2019@r-bp1ps6my7lzg8rdhwx682.redis.rds.aliyuncs.com:6379/0'
+RESULT_BACKEND = 'redis://:Wqsd@2019@r-bp1ps6my7lzg8rdhwx682.redis.rds.aliyuncs.com:6379/1'
+
+# Celery 配置
+CELERY_CONFIG = {
+    'broker_url': BROKER_URL,
+    'result_backend': RESULT_BACKEND,
+    'task_serializer': 'json',
+    'result_serializer': 'json',
+    'accept_content': ['json'],
+    'timezone': 'Asia/Shanghai',
+    'enable_utc': True,
+    'imports': ['celery_tasks'],
+    'task_routes': {
+        'celery_tasks.*': {"queue": "dev"},
+    },
+    'beat_schedule': {
+        'run-sample-task-every-10-seconds': {
+            'task': 'celery_tasks.test_task',
+            'schedule': 10.0,
+            'args': (),
+            'kwargs': {}
+        },
+    }
+}

+ 10 - 0
celery_tasks.py

@@ -0,0 +1,10 @@
+from celery_app import app
+
+@app.task(bind=True, name='test_task')
+def sample_task(self):
+    """示例任务,带任务实例绑定"""
+    self.update_state(state='PROGRESS', meta={'status': 'working'})
+    print("Task is running...")
+    self.update_state(state='PROGRESS', meta={'status': 'finalizing'})
+    return "Task Completed!"
+

+ 2 - 1
requirements.txt

@@ -27,4 +27,5 @@ scikit-learn~=1.6.1
 google~=3.0.0
 cffi~=1.17.1
 lxml~=5.3.2
-scipy~=1.15.2
+scipy~=1.15.2
+celery~=5.5.2