当前位置: 首页 > news >正文

建设网站的颜色优化网站排名需要多少钱

建设网站的颜色,优化网站排名需要多少钱,h5网站制作价格,metinfo企业网站管理系统本文讲解4.4版jxTMS中如何自行定义一个频率型的动态管控,整个系列的文章请查看:docker版jxTMS使用指南:4.4版升级内容 docker版本的使用,请查看:docker版jxTMS使用指南 4.0版jxTMS的说明,请查看&#xff…

本文讲解4.4版jxTMS中如何自行定义一个频率型的动态管控,整个系列的文章请查看:docker版jxTMS使用指南:4.4版升级内容

docker版本的使用,请查看:docker版jxTMS使用指南

4.0版jxTMS的说明,请查看:4.0版升级内容

4.2版jxTMS的说明,请查看:4.2版升级内容

上篇文章中我们讲解了jxTMS的动态管控,本文则展示一个自定义的频率型动态管控的实现。

如果开发者针对自己的需要也想实现某种频率型的管控,可利用jxTMS内置的频率控制对象frequency。

引用:

form jx.auth import frequency

其构造函数为:

class frequency:def __init__(self, checkItem, max=10, checkPeriodSeconds=60,exceedLimit=100, exceedDual=None)#checkItem:该频率管控的对象名,如用户名、资源ID等#max:上文中的限额#checkPeriodSeconds:上文中的限制周期#exceedLimit:上文中的超频数#exceedDual:超频后的回调处理函数,其函数签名为:#  exceedDual(checkItem)

我们举个例子:

class demoCheck:_accessFrequency = {}@classmethoddef frequencySet(cls, userName, max=10, checkPeriodSeconds=60,exceedLimit=100, exceedDual=None):rl = cls.__dict__['_accessFrequency']#此处设置了超频时的处置函数为本类的_exceedDual函数rl[userName] = frequency(userName, max=max, checkPeriodSeconds=checkPeriodSeconds,exceedLimit=exceedLimit, exceedDual=cls._exceedDual)#用于上篇文章中所介绍的全面检查@classmethoddef check_frequency_forSystem(cls, u, op, resID):fl = cls.__dict__['_accessFrequency']#需要开发者自己来决定挑选哪些用户来执行自己的频率限制审查b = needCheck(u,op,resID)if b:#根据业务需要执行频率检查f = fl.get(u.name(),None)if f is None:#防止扫描return False,f'[{u._name}]访问频率超过预期'b = f.check()if not b:return False,f'[{u._name}]访问频率超过预期'return True,None#用于上篇文章中所介绍的指定检查@classmethoddef check_frequency_forMe(cls, myName, op, resID):fl = cls.__dict__['_accessFrequency']f = fl.get(myName,None)if f is None:#防止扫描return False,f'[{myName}]访问频率超过预期'b = f.check()if b:return True,Nonereturn False,f'[{myName}]访问频率超过预期'#超频时的处置@classmethoddef _exceedDual(cls, userName):#超频了,踢出并阻止登录user.preventUser(userName)msg = f'用户【{userName}】操作过于频繁,阻止12小时'jxGo.log('warn',msg)

根据自己的业务需要,可随时通过执行下面的语句来添加自己的频率型动态管控:

demoCheck.frequencySet(objName,...限额等参数...)

对自己定义的该管控措施,其可部署的检查点有两种:

1、利用系统内置的卡控来统一触发,通过执行:

user.setDynamicallyCheck('自己的动态管控名',demoCheck.check_frequency_forSystem)

不需再做其它任何处置,系统即会自动在全面检查时调用demoCheck.check_frequency_forSystem函数来完成自己的频率型管控。

2、自己在业务操作过程中,自行执行频率管控的检查,通过执行:

user.setDynamicallyCheck('自己的动态管控名',demoCheck.check_frequency_forMe)

此种方式需手动触发动态管控的执行,因此需再自己的业务处理函数中执行:

...业务操作的预备动作
b,msg = user.specialCheck('自己的动态管控名',currentUser,操作名,资源ID)
if not b:rm = f'用户[{currentUser.fullname()}]执行操作【{操作名}】未通过频率审查:{msg}'jxGo.log('warn', rm)return None,rm
...通过了频率管控的审查,继续执行

同时,使用此种方式来调度自己定义的动态管控,需要在系统统一调度时排除掉【自己的动态管控名】,否则【自己的动态管控名】会在系统内置的卡控点被统一触发,从而造成期望之外的审查,可能会导致其它用户都被阻止!

要避免此种情况的出现,需执行:

user.notDoDynamicallyCheck('自己的动态管控名')

第一种方式属于全局执行,所以check_frequency_forSystem要有一个识别用户的needCheck【自己定义】函数来进行用户的识别,默认则是放行;第二种方式属于针对性执行,所以不需要用户的识别,默认则是拒绝。

也正是由于后者是针对性执行,所以必须调用notDoDynamicallyCheck将其从全局执行中剔除,切切!

超频后临时阻止用户

在demoCheck的frequencySet中设置了超频时的处理函数:demoCheck._exceedDual。其利用了user类提供的preventUser函数来临时阻止超频的用户。

preventUser函数会将该用户临时加入到黑名单中【这会导致该用户立刻无法访问以及登录】,默认12个小时后再自动将用户移出黑名单。这个临时阻止的时长可调:

def preventUser(cls,userName,Hours=12):

即开发者在调用user.preventUser临时阻止用户时,通过设置Hours可将该用户阻止对应的小时数【为了提高效率,移出黑名单是由系统统一调度执行的,所以具体的阻止时长,大约是指定时长后的1小时左右,即指定了10小时,大约是在11个小时左右】。

参考资料:

jxTMS设计思想

jxTMS编程手册

下面的系列文章讲述了如何用jxTMS开发一个实用的业务功能:

如何用jxTMS开发一个功能

下面的系列文章讲述了jxTMS的一些基本开发能力:

jxTMS的HelloWorld

http://www.mmbaike.com/news/54703.html

相关文章:

  • 怎么自己做五合一网站厦门seo怎么做
  • 男女做暖暖的试看网站专门开发小程序的公司
  • 自己做的网站怎么植入erp网页广告调词平台
  • 我做网站可以赚钱吗seo关键词优化技术
  • 网站免费推广方式网络推广工作好吗
  • 网页制作优质网站市场调研公司
  • 山西省网站建设长沙seo网站管理
  • 如何在百度上做公司做网站班级优化大师怎么下载
  • 网站备案期间可以建站使用软件提高百度推广排名
  • 公司如何做网站建设竞价排名深度解析
  • 做网站标题头像内蒙古seo
  • 在家做兼职哪个网站靠谱搜索引擎主要包括三个部分
  • 成都科技网站建设服务热线百度app免费下载安装
  • 国外网站博客网站也可以做引流搜索热门关键词
  • win7系统可以做网站吗百度移动权重
  • 政府邀请招标网站建设文件范本关键词优化话术
  • 怎么做投注网站网站推广策划案
  • ps做网站心得seo推广软件排行榜前十名
  • 哪里建设网站最好用网络营销推广平台
  • 做疏通什么网站推广好大连网站排名推广
  • php网站建设的毕设报告营销推广计划怎么写
  • 天津网站建设托管seo标题关键词怎么写
  • 深圳找个人做网站专业恶意点击软件
  • 怎么替换网站资源
  • 知名网站排行榜企业网络营销的模式有哪些
  • 中国建设银行新闻网站国家卫生健康委
  • 日韩网站模板源码网络营销活动推广方式
  • 郑州做网站比较专业的机构网络推广方案范文
  • 桂林做手机网站今日新闻摘抄10条简短
  • 阿里云的网站模版好吗seo网络科技有限公司