27 lines
834 B
Python
27 lines
834 B
Python
![]() |
import os
|
|||
|
from celery import Celery
|
|||
|
from celery.schedules import crontab
|
|||
|
|
|||
|
# 设置默认Django设置模块
|
|||
|
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'role_based_system.settings')
|
|||
|
|
|||
|
app = Celery('role_based_system')
|
|||
|
|
|||
|
# 使用字符串表示,避免pickle序列化可能带来的安全问题
|
|||
|
app.config_from_object('django.conf:settings', namespace='CELERY')
|
|||
|
|
|||
|
# 自动从所有注册的Django应用中加载任务
|
|||
|
app.autodiscover_tasks()
|
|||
|
|
|||
|
# 配置定期任务
|
|||
|
app.conf.beat_schedule = {
|
|||
|
# 每小时检查一次未发布的视频
|
|||
|
'check-scheduled-videos-every-hour': {
|
|||
|
'task': 'user_management.tasks.check_scheduled_videos',
|
|||
|
'schedule': crontab(minute=0, hour='*/1'), # 每小时运行一次
|
|||
|
},
|
|||
|
}
|
|||
|
|
|||
|
@app.task(bind=True, ignore_result=True)
|
|||
|
def debug_task(self):
|
|||
|
print(f'Request: {self.request!r}')
|