Django 定時自動 、手動錄製視訊介面
阿新 • • 發佈:2020-07-18
你負責努力,剩下交給天意
- 終於寫完了一個小需求。從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