文档章节

小蚂蚁学习APP接口开发(4)—— 静态缓存的操作方法和定时任务

嗜学如命的小蚂蚁
 嗜学如命的小蚂蚁
发布于 2015/10/16 10:00
字数 554
阅读 422
收藏 2
点赞 0
评论 0

静态缓存的操作

    这个之前写的页面静态化有异曲同工之妙,无非就是获取数据、写入数据、读出数据则几个动作。例子中写了一个方法,通过对参数的判断,可以对静态缓存文件进行生成、修改和删除,比较容易操作。

<?php

class File{

	//缓存文件的路径
	private $_dir;

	//缓存文件的默认路径
	const EXT='.txt';

	//构造方法生成目录
	function __construct(){
		$this->_dir	=	dirname(__FILE__).'/files/';
		if(!is_dir($this->_dir)){
			mkdir($this->_dir,0777);	
		}
	}

	/*************************
	*
	*	缓存文件的生成,修改,删除
	*	$value有值,写入。无值,读出。为null,删除
	*	@param 	 string		$key 	文件名 	
	*	@param 	 mixed		$value 	缓存的数据	
	*	@param 	 string		$path 	缓存文件的路径
	*	return 	 mixed 		返回值为布尔值,字符串,整型
	*
	*******************/
	public function cacheData($key,$value='',$path=''){
		
		//缓存文件的全路径
		$filename	=	$this->_dir.$path.$key.self::EXT;

		//如果value为null,这删除这个静态缓存
		if(is_null($value)){
			return @unlink($filename);

		}
		

		//如果$value不等于空,说明是写入操作
		if($value != ''){
			//判断提交的path是否存在
			$dir 	=	dirname($filename);
			if(!is_dir($dir)){
				mkdir($dir,0777);
			}
			//经数据json化,保存到文件

			return file_put_contents($filename,json_encode($value));
		}elseif($value == ''){    //说明是读取操作
			if(is_file($filename)){
				return json_decode(file_get_contents($filename),true);
			}else{
				return false;
			}
		}

	}
}

	$file =	new File();
	$str=$file->cacheData('myblog','学php的小蚂蚁 博客 http://my.oschina.net/woshixiaomayi/blog');
	if($str){
		if(is_bool($str)){
			echo 'success';
		}else{
			echo $str;
		}
	}else{
		echo 'error';
	}

?>

    主要判断第二个参数$value,如果有值,则写入;如果无值,就读取;如果是null,就删除;

在linux系统设置定时任务

命令:    1.    crontab -e    编辑某个用户的cron任务

              2.    crontab -l    列出某个用户cron服务的详细内容

              3.    crontab -r    删除定时任务

定时任务的格式

分            时            日        月            星期            命令

    *            *            *            *            *  

0-59        0-23        1-31    1-12        0-6            command

注:* 代表取值范围内的数字        / 代表 每 ,比如每分钟

例如:

    */1    *    *    *    *        php        /data/www/index.php        每分钟执行index.php脚本

    50    7    *    *    *        /sbin/service    sshd    start                每天7:50分开启ssh服务

© 著作权归作者所有

共有 人打赏支持
嗜学如命的小蚂蚁
粉丝 137
博文 161
码字总数 100864
作品 0
郑州
程序员
小蚂蚁学习APP接口开发(6)—— APP接口实例——首页数据接口的案例实现

读取数据的三种方式 读取数据库方式开发首页接口 从数据库获取数据——》封装——》生成接口数 优点:数据时效性比较高的系统 2. 读取缓存方式开发首页接口(用途非常广) 从数据库获取信息—...

嗜学如命的小蚂蚁
2015/10/18
805
0
用PHP写APP接口,现在我也在学习中。。。

现在app这么火,作为一个phper,应该知道如何写app的接口,下面做一个讲解。Index: 第1章 APP接口简介 - 第2章 封装通信接口方法 2-1 JSON方式封装通信接口 (14:39) 2-2 PHP生成XML数据 (12:...

YSail
07/05
0
0
Java后端程序员1年工作经验和技术总结

本文转载自:Java后端程序员1年工作经验和技术总结 1.引言   毕业已经一年有余,这一年里特别感谢技术管理人员的器重,以及同事的帮忙,学到了不少东西。这一年里走过一些弯路,也碰到一些...

gongxifacai_believe
2017/10/05
0
0
小蚂蚁学习APP接口开发(8)—— APP接口实例——服务器定时缓存的方式开发接口

基本的思路:服务器只负责定时更新缓存。请求进来只需要读取缓存就可以了。 服务器定时执行生成缓存的代码: <?php /** crontab 定时生成缓存文件 /usr/bin/php /app/crontab.php* 学php的小...

嗜学如命的小蚂蚁
2015/10/20
229
0
taobao-pamirs-schedule-2.0源码分析——类设计

使用方法 首先学习一个开源项目,一定要先学习该开源项目的使用方法。该项目的使用方法本文不再详述。请参考博文: http://pinsir.iteye.com/blog/882275 http://pinsir.iteye.com/blog/882...

杨武兵
2016/03/02
956
8
如此牛逼?双11背后的秘密-支付宝app双11最佳实践

近来,FF项目的运营活动越来越多,对于架构设计以及程序研发有了更高的要求,参考国内互联网公司对于营销活动app的设计思路,我们找到了最具有代表性的支付宝双11活动,阐述运营活动类高并发...

丁小晶
2016/04/20
0
0
Android 跨进程通信 深入浅出AIDL(一)

前言 简介 快速上手 附加技能定时推送消息 结束语 项目下载 前言 本文主要讲述AIDL作用以及如何快速上手AIDL项目 简介 A [android] I [Interface] D [Definition] L [Language] Android接口定...

猴亮屏
2017/10/20
0
0
Android app应用性能优化

一、名词解释 内存溢出 实质应用程序不能及时释放内存或者加载到内存上的数据太大而导致的OOM问题 内存泄漏 目标类被其他类持有、导致无法销毁、从而导致目标类无法被调用也无法销毁。 窗体(...

IamOkay
2014/11/03
0
0
基于Laravel Task-Scheduler定时发送邮件小程序

说明:本文主要学习Laravel的Artisan Command、Task Scheduler和Mail相关知识。做一个简单的小demo,用来定时发邮件。。走完整个流程最多只需一小时。同时,会将开发过程中的一些截图和代码黏...

botkenni
2016/10/21
89
0
开源框架使用指南

【Android】Retrofit 网络请求 Service,@Path、@Query、@QueryMap... 【Android】Retrofit 网络请求 Service,@Path、@Query、@QueryMap... 别再浪费时间搭框架了,可能最适合的 mvp 框架来...

掘金官方
2017/12/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

全新内存布局Android5 for one x

众所周知Android5.0默认ART模式,运行速度加倍,软件占用内存也加倍,我们one x这种元老机采用旧的内存布局,data空间2g ART模式下安装几个软件也就不够用了。最近逛国外的xda论坛,发现有大...

CrazyManDF
7分钟前
0
0
web3j转账

 web3 转账功能   为了完成以太坊交易,必须有几个先决条件   1、对方的以太坊地址   2、确定要转账的金额   3、自己地址的转账权限   4、大于转账金额的以太币,以太币转账其实就...

智能合约
8分钟前
0
0
10.28 rsync工具介绍 , rsync常用选项, rsync通过ssh同步

rsync远程同步 重点!重点!!重点!!! 例子 • rsync -av /etc/passwd /tmp/1.txt • rsync -av /tmp/1.txt 192.168.188.128:/tmp/2.txt rsync格式 • rsync [OPTION] … SRC DEST • rs......

Linux_老吴
22分钟前
0
0
iis php 环境搭建,非常详细的教程

准备篇 一、环境说明: 操作系统:Windows Server 2016 PHP版本:php 7.1.0 MySQL版本:MySQL 5.7.17.0 二、相关软件下载: 1、PHP下载地址: http://windows.php.net/downloads/releases/ph...

T_star
24分钟前
0
0
Day35 rsync通过服务同步

rsync通过服务同步 rsyncd.conf配置文件详解 port:指定在哪个端口启动rsyncd服务,默认是873端口。 log file:指定日志文件。 pid file:指定pid文件,这个文件的作用涉及服务的启动、停止等...

杉下
29分钟前
1
0
【最新最全】为 iOS 和 Android 的真机和模拟器编译 Luajit 库

编译 Luajit 库,的确是一个挑战。因为官网的教程,在当前版本的 Xcode 和 NDK 环境中,已经不适用了。以前只是编译了适用于真机的 Luajit 库。最近在尝试编译模拟器 Luajit 库,就顺便梳理了...

ios122
29分钟前
0
0
rsync至ssh同步

rsync: 文件同步工具,可实现“增量拷贝”;使用yum安装rsync包 常用选项:-a=-rtplgoD (-r同步目录,-t保持文件的时间属性,-p保持文件的权限属性,-l保持软连接,-g保持文件的属组,-o保持...

ZHENG-JY
35分钟前
0
0
TradingView 学习笔记

#前言 公司最后需要使用TradingView展示K线图走势。由于之前没接触过,拿到文档时一脸蒙逼。还好找到二篇文章+Demo代码,直接改改就行了。 #被批 由于上面的懵懂,有个问题困扰4个小时没解决...

hihubs
35分钟前
0
0
10.28 rsync工具介绍~10.31 rsync通过ssh同步

rsync命令是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。rsync使用所谓的“rsync算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而...

洗香香
37分钟前
1
0
卷积为什么要旋转180度

参考《最容易理解的对卷积(convolution)的解释》 https://blog.csdn.net/bitcarmanlee/article/details/54729807 这篇博客详细讲解了“卷积”,提及了为什么要反转180度,我简述下。 1.卷积的...

datadev_sh
46分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部