微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在视图函数上运行 Django APScheduler

如何解决如何在视图函数上运行 Django APScheduler

我想每天最好在特定时间运行 Django 视图,该视图调用 API 并将数据保存在外键关系模型中。我不能在 python 中使用 schedule 包,因为它需要无限循环,不能与 Web 服务器一起运行。 Django APScheduler 看起来像一个优雅的解决方案,尽管问题是视图函数将请求作为参数传递给 APScheduler,我需要使用用户的 id 保存数据,因此出现名称错误

views.py

def sync_data():

  api_url = ""

  access_token = RefreshToken.response

  headers = {
     'Authorization': 'Bearer {}'.format(access_token),'Content-Type': 'application/json;encoding=utf-8',}

  user_id = request.user.id 
  
  response = requests.post(api_url,data=json.dumps(body),headers=headers)
  
  r = response.json()
  

  s = Model(user=request.user,starttime = startdate,endtime = endate,field = i['value'][0])
  s.save()

 return redirect('app:dash')

调度程序.py

from .views import sync_data

def start():
    scheduler = BackgroundScheduler()
    scheduler.add_jobstore(DjangoJobStore(),"default")
    # run this job every 24 hours
    scheduler.add_job(sync_data,'interval',hours=24,name='sync_daily_data',jobstore='default')
    register_events(scheduler)
    scheduler.start()
    print("Scheduler started...",file=sys.stdout)

我该怎么做?感谢我得到的任何帮助

解决方法

您可以使用 Django-Celery 包。文档Here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。