报错分析:Requested setting REST_FRAMEWORK, but settings are not configured.

报错分析:Requested setting REST_FRAMEWORK, but settings are not configured.

Django使用APSchedule报错:django.core.exceptions.ImproperlyConfigured: Requested setting REST_FRAMEWORK, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.

需求

希望在Django中加一个定时任务,每天定时执行某个函数,从接口中获取最新数据存储起来。
这里尝试用APSchedule,网上有很多教程。

代码

managy.py

from test.app_model.views import Update


scheduler = BackgroundScheduler()
# 时间间隔5秒
scheduler.add_job(Update.test, trigger='interval', seconds=5, id='test')
scheduler.start()

test/app_model/views.py

class Update(MyAPIView):
    # 定时的任务,打印当前的时间
    def test(self):
        print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())))

报错分析

Python不支持py文件相互import/依赖,而Django中app是依赖于manage.py文件的。这里在manage里面又依赖了app,形成了相互依赖。

那能不能不在manage.py里面启动定时器呢?

不能,需求就是希望将线程分开,即使是不启动app,也能定时执行任务,所以需要放在manage.py里

最后换成了django-crontab来完成。

如果有更好的解决办法,欢迎指出~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值