- 终于写完了一个小需求。从0到1
- 部门同事突然给我一个需求,说让我写一个视频录制接口,剩下的我就可以不用管了,期初完全无从下手
- 是这样的通过手动,自动,来录制视频,还要定时根据时间来录制视频,真的是无从下手啊,踏破铁鞋无觅出 慢慢写,修修改改写了俩天左右的时间终于写完了 这里记录一下 呜呜!
- 这里就简简单单实现一个录制视频视屏的一个接口,只有后端代码
- 注意! 这里只是展示部分代码,并且是伪代码哦!只是给大家做类似业务的提供一个思路! 代码运行不了哦!
- 不可私自转发!!!!!
# model class XX(models.Model): xxx = models.DateTimeField(auto_now_add=True) xxx = models.DateTimeField(auto_now_add=True) user_type_choices = ( (1,‘未录制‘), (2,‘停止‘), (3,‘录制‘) ) xxx = models.IntegerField(choices=user_type_choices,default=1) xxx = models.CharField(max_length=55) xxx = models.CharField(max_length=22)
# viwes 手动 def index(request): if request.method == ‘GET‘: rec_all = XX.objects.all() id = request.GET.get(‘id‘) # print(id) start = request.GET.get(‘start‘) # print(start) # 开始录制 start_rec = XX.objects.filter(id=id) for start_2 in start_rec: if start_2.XX== 2: start_2.XX= 3 start_2.save() return HttpResponse(‘继续录制‘) ## 省略逻辑 ......# 暂停逻辑 stop_id = request.GET.get(‘stop_id‘) resc = XX.objects.filter(id=stop_id) # print(resc) for i in resc: if i.XX== 1: # pass return HttpResponse(‘还没有录制‘) ##省略 逻辑 ...... return render(request,‘index.html‘#定时任务 自动录制 这里只有开始录制 没有定时关闭结束录制 自己好好想想结束录制怎么搞! views
from apscheduler.schedulers.background import BackgroundScheduler from django_apscheduler.jobstores import DjangoJobStore, register_events, register_job # 实例化调度器 scheduler = BackgroundScheduler() # 调度器使用DjangoJobStore() scheduler.add_jobstore(DjangoJobStore(), "default") # 设置定时任务,选择方式为interval 时间间隔 seconds # 更具时间开始定时录制 @register_job(scheduler, "interval") def test_job(): # 这是当前时间 这个时间是我根据业务的时间而定的!!!! 需要的自己改一下就可以了! x是根据你的业务来定的哦,如果是中国时区 就不需要减了! time_now = datetime.datetime.now() - datetime.timedelta(hours=x) time = str(time_now) # print(time) str_time = time[:19] # print(time_now) res = XX.objects.all() for i in res: # 这是数据库开始时间 time = str(i.start_timestamp) # print(time) str_start_time = time[:19] # print(str_start_time) # print(str_stop_time) # 省略逻辑 大概思路就是将你的数据库状态定时的去获取改变即可!
register_events(scheduler)
scheduler.start()
# urls 在你的 urls 把你的views.py导入进去,否则定时任务就会失效! # app 是我的子引用名 from app import views
#定时任务配置! pip install django_apscheduler 在 settings 中添加 INSTALLED_APPS = [ ‘django_apscheduler‘, ] APSCHEDULER_DATETIME_FORMAT = "N j, Y, f:s a" # Default
原文:https://www.cnblogs.com/liuxiaomo/p/13335959.html