Files
jumpserver/apps/terminal/signal_handlers/session.py
fit2bot 44397caad4 perf: 支持在线会话暂停操作 (#11146)
* perf: 支持在线会话暂停操作

* perf: 优化代码

---------

Co-authored-by: Eric <xplzv@126.com>
2023-08-01 16:40:38 +08:00

19 lines
582 B
Python

from django.db.models.signals import pre_save, post_save
from django.dispatch import receiver
from terminal.models import Session
@receiver(pre_save, sender=Session)
def on_session_pre_save(sender, instance, **kwargs):
if instance.need_update_cmd_amount:
instance.cmd_amount = instance.compute_command_amount()
@receiver(post_save, sender=Session)
def on_session_finished(sender, instance: Session, created, **kwargs):
if not instance.is_finished:
return
# 清理一次可能因 task 未执行的缓存数据
Session.unlock_session(instance.id)