interval

openwrt luci web分析

a 夏天 提交于 2019-12-01 09:52:17
openwrt luci web分析 来源 https://www.jianshu.com/p/596485f95cf2 www/cbi-bin/luci #!/usr/bin/lua --cgi的执行命令的路径 require"luci.cacheloader" --导入cacheloader包 require"luci.sgi.cgi" --导入sgi.cgi包 luci.dispatcher.indexcache = "/tmp/luci-indexcache" - -cache缓存路径地址 luci.sgi.cgi.run() --执行run方法,此方法位于*/luci/sgi/cgi.lua中 run方法的主要任务就是在安全的环境中打开开始页面(登录页面),在run中,最主要的功能还是在dispatch.lua中完成。 LUCI的MVC 用户管理: 在luci的官方网站说明了luci是一个MVC架构的框架,这个MVC做的可扩展性很好,可以完全的统一的写自己的html网页,而且他对shell的支持相当的到位,(因为luci是lua写的,lua是C的儿子嘛,与shell是兄弟)。 在登录界面用户名的选择很重要,luci是一个单用户框架,公用的模块放置在 /luci/controller/下面,各个用户的模块放置在 /luci/controller/下面对应的文件夹里面,比如

python从写定时器学习Thread

百般思念 提交于 2019-12-01 09:08:25
目录 python从写定时器学习Thread Timer 对象 粗陋的循环定时器 更 pythonic 循环定时器 FAQ python从写定时器学习Thread python 如何写一个定时器,循环定时做某一操作呢? Timer 对象 from threading import Timer def hello(): print "hello, world" t = Timer(10.0, hello) t.start() 10秒后输出: hello, world 重点研究 t = Timer(10.0, hello) 这句代码,python 提供了一个 Timer 对象 ,它会在指定的时间后执行某一操作;它的完整形式: class threading.Timer(interval, function, args=[], kwargs={}) interval 是时间间隔, function 是可调用的对象, args 和 kwargs 会作为 function 的参数。 注意:这里只会执行一次 function,而不会一直定时执行,且 Timer 在执行操作的时候会创建一个新的线程。 Timer 在 python2 和 python3 有点区别: # python2.7 def Timer(*args, **kwargs): return _Timer(*args, *

mysql 日期加减操作

早过忘川 提交于 2019-11-30 11:58:55
1. MySQL 为日期增加一个时间间隔:date_add() set @dt = now(); select date_add(@dt, interval 1 day); -- add 1 day select date_add(@dt, interval 1 hour); -- add 1 hour select date_add(@dt, interval 1 minute); -- ... select date_add(@dt, interval 1 second); select date_add(@dt, interval 1 microsecond); select date_add(@dt, interval 1 week); select date_add(@dt, interval 1 month); select date_add(@dt, interval 1 quarter); select date_add(@dt, interval 1 year); select date_add(@dt, interval -1 day); -- sub 1 day MySQL adddate(), addtime()函数,可以用 date_add() 来替代。下面是 date_add() 实现 addtime() 功能示例: 2. MySQL

Python连载37-多进程、进程子类、进程父子id

别等时光非礼了梦想. 提交于 2019-11-29 10:35:06
一、线程替代方案 1.subprocess (1)完全跳过线程,使用进程 (2)是派生进程的主要替代方案 (3)python2.4后引入 2.multiprocessing (1)使用threading接口派生,使用子进程 (2)允许为多核或者多CPU派生进程,接口很threading非常相似 (3)python2.6 3.concurrent.futures (1)新的异步执行模块 (2)人物级别的操作 (3)python3.2之后引入 4.多进程 (1)进程间通讯(InterprocessCommunication,IPC) (2)进程之间无任何共享状态 (3)进程的创建 i.直接生成Process实例对象,举例 import multiprocessing from time import sleep,ctime def clock(interval): while True: print("The time is %s" % ctime()) sleep(interval) if __name__ == "__main__": p = multiprocessing.Process(target= clock,args=(2,)) p.start() #从运行就可以看出来主进程已经结束了,但是子线程仍然在运行着 #和我们之前讲的线程,有一个最大区别就是线程在主进程里面

[C#.NET][Thread] 善用 SpinWait 处理 线程空转 以利提升性能

僤鯓⒐⒋嵵緔 提交于 2019-11-29 08:57:19
[C#.NET][Thread] 善用 SpinWait 处理 线程空转 以利提升性能 当我们在处理一个线程时,若需要同步等待时,以往可能会常用 Thread.Sleep,但 Thread.Sleep 会消耗 CPU 的时间配置,所以我们可以使用 Thread.SpinWait 方法 、SpinWait 结构 在 .NET4.0 以前,可以使用 Thread.SpinWait 方法 下图出自http://msdn.microsoft.com/zh-tw/library/system.threading.thread.spinwait.aspx 在 .NET4.0 以后,可以使用 SpinWait 结构 下图出自http://msdn.microsoft.com/zh-tw/library/ee722114.aspx 下图出自http://msdn.microsoft.com/zh-tw/library/system.threading.spinwait.aspx 看来,MSDN 则是建议使用 SpinWait 结构 来看个例子: 以往我常用 Stopwatch 来搭配 Thread.Sleep 来达到空转等待的目的 public void Start(Action action) { if (this.IsRunning) { return; } this.IsRunning =

MYSQL的操作命令

本小妞迷上赌 提交于 2019-11-29 06:16:26
一、御前 1 win+R DOS 输入 net start mtsql 和 net stop mysql 启动和停止Mysql 服务,也可通过计算机——管理——服务和应用程序——服务——MYSQL——右击 启动mysql服务出现服务名无效的原因及解决方法【失败】 问题原因:mysql服务没有安装。 解决办法: 在 mysql bin目录下 以管理员的权限 执行 mysqld -install命令 以管理员的权限 mysqld -remove ,卸载mysql服务 2 登录和退出 路径: DOS:mysql -uroot -p 输入密码 exit; 退出 show databases; 查看数据库 Command Line Client登录和退出 3 常见操作 \h 或者 help; source D:\test.sql 即执行test.sql文件 4 图形 MYSQL Workbench 另外介绍第三方 SQLyog 二、数据库和表的基本操作 1、MySQL支持的数据类型 1)数值类型 字符串类型 日期和时间类型 2)数据库基本操作 CREATE DATABASE 数据库名称; SHOW DATABASE; SHOW CREATE DATABASE 数据库名称; 查看已经创建的数据库的创建信息 CREATE DATABASE 数据库名称 CHARACTER SET gbk;

JavaScript 之 定时器

核能气质少年 提交于 2019-11-29 03:16:14
  JavaScript 里面有两个定时器:setTimeout() 和 setInterval() 。    区别 :     setTimeout():相当于一个定时炸弹,隔一段时间执行,并且只会执行一次就不在执行了。     setInterval(): 相当于一个闹钟,隔一段时间执行,并且会重复执行。 一、setTimeout()   1、设置定时器(倒计时)      语法格式 : setTimeout(function() {},时间);      这个函数需要两个参数:       第一个参数是到时间后需要执行的 函数 ,可以是匿名函数,也可以是命名函数;       第二个参数是 时间间隔 ,单位为毫秒(ms)。     Demo: 1 btn.onclick = function() { 2 setTimeout(function(){ 3 alert("hello world"); 4 },3000); 5 }      当点击按钮3秒后,页面弹出 “hello world” 的对话框。   2、取消定时器(倒计时)      语法格式 : var timerId = setTimeout(function(){}, 时间间隔); clearTimeout(timerId);      声明定时器时会有一个返回值,是一个整数,即当前这个 定时器的 标识 。   

Python源码学习Schedule

做~自己de王妃 提交于 2019-11-28 23:57:32
关于我 一个有思想的程序猿,终身学习实践者,目前在一个创业团队任team lead,技术栈涉及Android、Python、Java和Go,这个也是我们团队的主要技术栈。 Github:https://github.com/hylinux1024 微信公众号:终身开发者(angrycode) 上一篇《一个简单的Python调度器》 介绍了一个简单的 Python 调度器的使用,后来我翻阅了一下它的 源码 ,惊奇的发现核心库才一个文件,代码量短短700行不到。这是绝佳的学习材料。 让我喜出望外的是这个库的作者竟然就是我最近阅读的一本书《Python Tricks》的作者!现在就让我们看看大神的实现思路。 0x00 准备 项目地址 https://github.com/dbader/schedule 将代码 checkout 到本地 环境 PyCharm+venv+Python3 0x01 用法 这个在上一篇也介绍过了,非常简单 import schedule # 定义需要执行的方法 def job(): print("a simple scheduler in python.") # 设置调度的参数,这里是每2秒执行一次 schedule.every(2).seconds.do(job) if __name__ == '__main__': while True: schedule

很好的理解 job chain window

大城市里の小女人 提交于 2019-11-28 22:41:15
今天和大家分享一下 1. 作业(job),2.调度(scheduler),3.程序(program),4.链(chain),4.作业类(job_class),5.窗口(window),6.窗口组(window_group) 彻底揭开他们神秘的面纱。 在oracle 8i,9i中使用dbms_job方式留作业。其限制有二。 一是调度的时间不好控制,不太灵活,对时间的间隔难于把握。 二是不能调度操作系统的脚本,只能调度数据库内的程序或者语句。 随着技术的发展,oracle在10g,11g 中推出了新的一代调度程序dbms_scheduler,这个程序克服了上面的两个缺点。 下面我们介绍如何使用调度程序dbms_scheduler。 我们首先了解一下时间间隔的问题。 repeat_interval => 'FREQ=MINUTELY; INTERVAL=30' 这句话的含义为:每30分钟运行重复运行一次! repeat_interval => 'FREQ=YEARLY; BYMONTH=MAR,JUN,SEP,DEC; BYMONTHDAY=30'   这句话的含义为:每年的3,6,9,12月的30号运行job 一眼看上去格式有点乱,没有章法,不如以前的时间间隔明白。因为我们不知道格式的含义。 日历表达式基本分为三部分: 第一部分是频率,也就是"FREQ"这个关键字,它是必须指定的;

MySQL Event

旧城冷巷雨未停 提交于 2019-11-28 15:27:15
一、前言 自MySQL5.1.6起,增加了一个非常有特色的功能–事件调度器(Event Scheduler),可以用做定时执行某些特定任务(例如:删除记录、对数据进行汇总等等),来取代原先只能由操作系统的计划任务来执行的工作。更值得 一提的是MySQL的事件调度器可以精确到每秒钟执行一个任务,而操作系统的计划任务(如:Linux下的CRON或Windows下的任务计划)只能精 确到每分钟执行一次。对于一些对数据实时性要求比较高的应用(例如:股票、赔率、比分等)就非常适合。 事件调度器有时也可称为临时触发器(temporal triggers),因为事件调度器是基于特定时间周期触发来执行某些任务,而触发器(Triggers)是基于某个表所产生的事件触发的,区别也就在这里。 在使用这个功能之前必须确保event_scheduler已开启,可执行 SET GLOBAL event_scheduler = 1; ---或我们可以在配置my.ini文件 中加上 event_scheduler = 1 或 SET GLOBAL event_scheduler = ON; 来开启,也可以直接在启动命令加上“–event_scheduler=1”,例如: mysqld ... --event_scheduler=1 要查看当前是否已开启事件调度器,可执行如下SQL: SHOW VARIABLES