关于linux下的定时

1、在linux下,输入   crontab -e 2、将自己的程序或脚本的执行命令添加上,前面的参数是时间的设置,如下图: 3、用户所建立的crontab文件中,每一行都代表一项任务。      每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段,格式如下:minute   hour   day   month   week   comman
分类: 其他 发布时间: 05-19 23:47 阅读次数: 5

laravel中api验证jwt刷新token的一个问题

最近在研究laravel下api的开发,用到一个扩展jwt,开发中在刷新token的时候,一直报错,经排查,错误是得不到以前的token,最后发现是因为访问路由的时候,没有把上次的token作为参数传过来,导致的! 我的路由设置:$api->get('refresh', 'AuthController@refresh'); //刷新token 访问的网址:(注:一定要带上t
分类: 其他 发布时间: 05-19 23:47 阅读次数: 5

unserialize的这个问题是由一个emlog论坛用户在使用时报错而发现的 问题表现情况如下: emlog缓存的保存方式是将php的数据对象(数组)序列化(serialize)后以文件的形式存放,

unserialize的这个问题是由一个emlog论坛用户在使用时报错而发现的 问题表现情况如下: emlog缓存的保存方式是将php的数据对象(数组)序列化(serialize)后以文件的形式存放,读取缓存的时候直接反序列化(unserialize)缓存字符串即可读取数据,关于序列化和反序列化的原理请看我先前的文章《php函数serialize()与unserialize()不完全研
分类: 其他 发布时间: 05-19 23:47 阅读次数: 5

linux 下php连接orical数据库

参考这个文章: https://blog.csdn.net/ChasenWong/article/details/53897978原理就是, 下载一个Oracle的组件,然后再Linux上编译,记得phpize的和./configure的路径要改成和服务器有关的最后在/www/wdlinux/apache_php-5.6.29/etc/php.ini中加上[Oracle oci8]extensio...
分类: 其他 发布时间: 05-19 23:46 阅读次数: 5

并发编程之——写锁源码分析

1.前言 Java 中的读写锁实现是 ReentrantReadWriteLock ,是一种锁分离策略。能有效提高读比写多的场景下的程序性能。 关于如何使用参见 并发编程之 Java 三把锁。 由于读写锁较为复杂,故分为篇文章进行源码分析,今天先说较为简单的写锁。 2. 写锁介绍 不论是读锁还是写锁,都是基于 AQS 的,而 AQS 留给子类实现的就是 tryAcquire 或者 tryAcquireShared 方法,前者是写锁的实现,后者是读锁的实现,从名字上可以看出,一个是独占锁,一个是
分类: 其他 发布时间: 05-19 23:46 阅读次数: 11

并发编程 —— 自己写一个异步回调 API

1. 前言 在并发编程中,异步回调的效率不言而喻,在业务开发中,如果由阻塞的任务需要执行,必然要使用异步线程。并且,如果我们想在异步执行之后,根据他的结果执行一些动作。 JDK 8 之前的 Future 只能解决上面需求的一半问题,即异步执行,返回一个 Future,需要程序员调用 get 方法等待,或者使用 isDone 轮询。 效率不高。 JDK 8 新出的 CompletableFuture API 可以解决这个问题。但他的 API, 说实话,不太好用。 我们只想要一个简单的 API,能
分类: 其他 发布时间: 05-19 23:46 阅读次数: 5

谈谈jQuery中的数据类型检测

这次是分享jQuery代码中的一些简写技巧,分析jQuery是如何优化代码的,如何用最少的代码来实现jQuery。 在我们工作中也常常会遇到一些数据类型检测,一些方法调用的形式 1 var arr = []; 2 3 var document = window.document; 4 5 var getProto = Object.getPrototypeOf; 6 7 var slice = arr.slice; 8 9 var concat = a
分类: 其他 发布时间: 05-19 23:46 阅读次数: 5

(一)Python装饰器的通俗理解

在学习Python的过程中,我相信有很多人和我一样,对Python的装饰器一直觉得很困惑,我也是困惑了好久,并通过思考和查阅才能略有领悟,我希望以下的内容会对你有帮助,我也努力通过通俗的方式使得对Python装饰器的理解更加的透彻。在文中如有遗漏和不足,欢迎交流和指点。 允许转载并注明出处:http://blog.csdn.net/u013471155 很多人对装饰器难以理解,原因是由于以下三点内容没有搞清楚: 关于函数“变量”(或“变量”函数)的理解 关于高阶函数的理解 关于嵌套函数的理解
分类: 其他 发布时间: 05-19 23:46 阅读次数: 5

vue插件

Vue.js提供了插件机制,可以在全局添加一些功能。它们可以简单到几个方法、属性,也可以很复杂,比如一整套组件库。 注册插件需要一个公开的方法install,它的第一个参数是Vue构造器,第二个参数是一个可选的选项对象。示例如下: MyPlugin.install = function(Vue,options){ //全局注册组件(指令等功能资源类似) Vue.component('component-name',{ //组件内容 }); //添
分类: 其他 发布时间: 05-19 23:46 阅读次数: 5

(十八)属性表

一、概念 上一章节讲述了方法表,方法体的内容就存放在属性表的“Code”中,如下图。 在Class文件、字段表和方法表都可以携带自己的属性信息,这个信息用属性表进行描述,用于描述某些场景专有的信息。 与Class文件中其它数据项对长度、顺序、格式的严格要求不同,属性表集合不要求其中包含的属性表具有严格的顺序,并且只要属性的名称不与已有的属性名称重复,任何人实现的编译器可以向属性表中写入自己定义的属性信息。虚拟机在运行时会忽略不能识别的属性,为了能正确解析Class文件,虚拟机规范中预定义了虚拟
分类: 其他 发布时间: 05-19 23:46 阅读次数: 5

并发编程—— FutureTask 源码分析

1. 前言 当我们在 Java 中使用异步编程的时候,大部分时候,我们都会使用 Future,并且使用线程池的 submit 方法提交一个 Callable 对象。然后调用 Future 的 get 方法等待返回值。而 FutureTask 是 Future 的一个实现,也是我们今天的主角。 我们就从源码层面分析 FutureTask. 2. FutureTask 初体验 我们一般接触的都是 Future ,而不是 FutureTask , Future 是一个接口, FutureTask 是
分类: 其他 发布时间: 05-19 23:46 阅读次数: 5

并发编程之——读锁源码分析(解释关于锁降级的争议)

1. 前言 在前面的文章 并发编程之——写锁源码分析中,我们分析了 1.8 JUC 中读写锁中的写锁的获取和释放过程,今天来分析一下读锁的获取和释放过程,读锁相比较写锁要稍微复杂一点,其中还有一点有争议的地方——锁降级。 今天就来解开迷雾。 2. 获取读锁 tryAcquireShared 方法 首先说明,获取读锁的过程是获取共享锁的过程。 代码加注释如下: protected final int11 tryAcquireShared(int unused) { Thread cur
分类: 其他 发布时间: 05-19 23:46 阅读次数: 5

python练习笔记——组合恒等式

组合恒等式之一 从n个物品中取出m个,则存在一个组合恒等式 C(n, m)=C(n, n-m)=C(n-1, m-1)+C(n-1,m) 备注:C(n,0) = 1 现求任意给定数的
分类: 其他 发布时间: 05-19 23:46 阅读次数: 5

mysql出现ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' 错误

init 6 神奇。。其他的都没有成功,这个居然成功了!! 还试验过:sudo mysqld restart啥的,都没有用......
分类: 其他 发布时间: 05-19 23:46 阅读次数: 4

ajax响应客户端数据注意事项

---恢复内容开始--- 1.ajax是异步请求,发出请求不会阻塞页面其他部分的程序的运行.当执行删除或者更新等操作,修改完成后页面需要显示修改前的页面,此时最好使用ajax异步请求,而不要使用 location.herf=url进行跳转.通过发送异步请求后,如果没有返回数据,则ajax请求的post方法参数不要给"json",或者给了"json"的话就要在服务端随便响应一个字符串过来. 2.在使用fastjson转对象为json串的时候要注意,比如像客户和订单,customer里有order
分类: 其他 发布时间: 05-19 23:46 阅读次数: 5

并发编程 —— Timer 源码分析

前言 在平时的开发中,肯定需要使用定时任务,而 Java 1.3 版本提供了一个 java.util.Timer 定时任务类。今天一起来看看这个类。 1.API 介绍 Timer 相关的有 3 个类: Timer :面向程序员的API 都在这个类中。 TaskQuue: 存储任务。 TimerThread: 执行任务的线程。 这个类的构造方法有 4 个: Timer() 创建一个新计时器。 Timer(boolean isDaemon
分类: 其他 发布时间: 05-19 23:46 阅读次数: 5

树莓派3 之 pi3Robot 控制系统配置

需求 个人正在用Python写一个控制系统,技术选型是python3 + Flask + Mysql + Bootstrap。需要将这套系统直接部署到树莓派中. 代码地址:https://github.com/apanly/pi3Robot 目录结构准备 sudo mkdir -p /data/www sudo chown -R pi:pi /data/www mkdir -p /data/www/logs     .     |-- logs     |-- pi3Robot 代码存放位置
分类: 其他 发布时间: 05-19 23:46 阅读次数: 5

并发编程 —— ScheduledThreadPoolExecutor

1. 前言 在前面的文章中,我们介绍了定时任务类 Timer ,他是 JDK 1.3 中出现的,位于 java.util 包下。而今天说的 ScheduledThreadPoolExecutor的是在 JUC 包下,是 JDK1.5 新增的。 今天就来说说这个类。 2. API 介绍 该类内部结构和 Timer还是有点类似的,也是 3 个类: ScheduledThreadPoolExecutor:程序员使用的接口。 DelayedWorkQueue : 存储任务的队列。 ScheduledF
分类: 其他 发布时间: 05-19 23:46 阅读次数: 5

const_cast

函数原型: const_cast < type-id > ( expression ) 去掉const属性:const_case<int*> (&num),常用,因为不能把一个const变量直接赋给一个非const变量,必须要转换。 加上const属性:const int* k = const_case<const int*>(j),一般很少用,因为可以把一个非const变量直接赋给一个const变量,比如:const int* k = j; 使用: 1.常量指针被转化成非常量指针,转换后指针
分类: 其他 发布时间: 05-19 23:46 阅读次数: 5

并发编程 —— Java 内存模型总结图

关于 Java 内存模型的类似思维导图。 如有错误,还请指正。
分类: 其他 发布时间: 05-19 23:46 阅读次数: 4