You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否用Django RQ延迟执行模型入库任务?遇异常求解决方案

解决Django RQ执行模型入库任务时的崩溃问题

你的错误是macOS系统特有的Objective-C运行时冲突,原因是RQ默认使用fork创建子进程处理任务,而macOS的ObjC初始化在fork后会触发安全检查导致崩溃。以下是修复步骤:

1. 启动Worker时禁用Fork模式

直接使用不依赖fork的SimpleWorker启动worker,替换原启动命令:

python manage.py rqworker --worker-class rq.SimpleWorker

或者通过参数直接禁用fork:

python manage.py rqworker --no-fork

2. 确保Job能正确访问Django ORM

你的现有代码逻辑没问题,但如果后续遇到ORM访问异常,需确保job函数能正确加载Django环境。若job不在Django app的可导入路径中,可在job开头手动初始化:

import django
django.setup()

不过使用django-rq时,manage.py rqworker已经自动完成了环境初始化,这一步通常不需要额外操作。

3. 验证修复效果

重启worker后调用test_view触发任务,此时worker应能正常执行create_model函数,将数据写入数据库,控制台会输出Done!。

内容的提问来源于stack exchange,提问作者Ivan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 13:44:58