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}') |