Django 定时自动 、手动录制视频接口

你负责努力,剩下交给天意

- 是这样的通过手动,自动,来录制视频,还要定时根据时间来录制视频,真的是无从下手啊,踏破铁鞋无觅出 慢慢写,修修改改写了俩天左右的时间终于写完了 这里记录一下 呜呜!

- 这里就简简单单实现一个录制视频视屏的一个接口,只有后端代码 

- 注意! 这里只是展示部分代码,并且是伪代码哦!只是给大家做类似业务的提供一个思路! 代码运行不了哦!

- 不可私自转发!!!!!

### 注意我这里就是用Django 差不多写了一个后台,这里调用了一下别人的接口,这个项目还用到了 Flask ffmpeg 等等技术 

### 后面还会继续更新 

# 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

 

posted @ 2020-07-18 15:37  Handsome、Snake  阅读(317)  评论(0编辑  收藏  举报