http://fztree.iteye.com/blog/2211746
在这篇文章里,我写了一个php脚本,用来定时关闭未付款的订单。
考虑到脚本的可扩展性
我简单封装了一个worker类
具体的执行类是CloseTradeWorker
配置文件config
日志写在/var/log/etz-dev/
先看配置文件
<?php return array( 'database' => array( 'host' => "localhost", 'username' => "root", 'password' => "123456", 'database' => "etz1", ), # log 路径 # 'log' => '/var/log/etz-dev/', );
然后是CloseTradeWorker
<?php require(dirname(__FILE__).'/../Worker.php'); class CloseTradeWorker extends Worker{ public function exec(){ $this->std_echo('CloseTradeWorker Start...'); // sql $add_time = time() - 5*60; $sql = ' UPDATE etz_borrow_investor'. ' SET close_time = add_time + 300, status = 8'. ' WHERE close_time = 0 AND status = 7'. ' AND add_time <'.$add_time; // 连接数据库 $this->init_mysql_connetion(); // 执行sql $step = mysql_query($sql, $this->db_con); if (false === $step) $this->std_echo ('CloseTradeWorker Failed: '.mysql_error() ); else $this->std_echo ('CloseTradeWorker Successfully executed.'); // 关闭连接 $this->halt_mysql_connetion(); } protected function std_echo($words){ $cfg = require(dirname(__FILE__).'/../config.php'); $dir = $cfg['log'].'close_trade/'; /* * sudo mkdir /var/log/etz-dev/close_trade * sudo chmod -R 777 /var/log/etz-dev/close_trade */ $file = $dir.date('Y-m-d').'_close_trade.log'; $content = date('Y-m-d H:m:s')."\t".$words."\n"; file_put_contents($file, $content, FILE_APPEND); parent::std_echo($words); } } ##### Worker ##### $worker = new CloseTradeWorker(); $worker->exec(); exit;
最后是基类
<?php abstract class Worker{ abstract function exec(); ########## db访问 相关代码 ######################################################## /* db connection */ protected $db_con; protected function init_mysql_connetion(){ $cfg = require(dirname(__FILE__).'/config.php'); $cfg = $cfg['database']; $this->db_con = mysql_connect($cfg['host'], $cfg['username'], $cfg['password'] ); if (!$this->db_con){ $this->std_echo('Could not connect: '.mysql_error() ); exit; } mysql_select_db($cfg['database'], $this->db_con); } protected function halt_mysql_connetion(){ mysql_close($this->db_con); } ######################################## protected function std_echo($words){ echo date('Y-m-d H:m:s')."\t".$words."\n"; } }
终于,我觉得这样的层次能足够满足需求和未来的可扩展性了。
相关推荐
PenTestScripts一些渗透时用到的小脚本注入我自动化注入脚本,目前支持get方式验证码简单生成验证码的php小脚本拆分cookie.py把http包中的cookie参数分解成python可用的字典格式post_get.php利用php发送http post与...
本文给大家分享的是使用php实现暴力破解mysql的小脚本代码,非常的好用,有需要的小伙伴可以参考下
用PHP编写的用于AWS SES跳出率监控的小脚本。 而且,它可以轻松地与Nagios或其他工具集成。 但为什么?? 查找有关SES和跳出率的更多信息: 项目设置 $ composer install $ cp src/config/parameters.yml.dist src/...
查询CFDI服务PHP 中的一个小脚本,允许您连接到 SAT 的 WS 以验证 CFDI 的状态。
- 随着技术的发展,出现了ASP(Active Server Pages)、PHP(Personal Home Page)等技术,这些技术相比CGI更加高效。 - JSP作为Java平台的一种技术,具有强大的功能和良好的性能,适用于构建大型网站应用。 2. **JSP...
包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】...
2. 强调可重用的组件绝大多数JSP页面都是使用JSP标识或小脚本生成页面上的动态内容,所有的脚本在服务器端运行。 3. 在服务器端,JSP引擎解释JSP标识和小脚本生成所请求数目的内容,并且将结果以HTML页面的形式发送...
删除 CryptoPHP 恶意软件的小脚本 重要提示:在您自己的风险下使用它,我们不提供任何保证 用法 将其上传到您的网站,运行起来很简单:) 更多信息 Fox-it 团队发现的加密 php 您可以和上阅读更多信息
* 产生内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在小脚本中 * 在服务器端,JSP引擎解释JSP标识,产生所请求的内容 ASP(Active Server Pages) ASP是一种基于VBScript的服务器端脚本语言,由Microsoft...
小项目我写的小脚本的集合列表vagrant-php.sh -- 用于 PHP 开发的 Vagrant 配置脚本。 这个脚本基于@rrosiek gist: ://gist.github.com/rrosiek/8190550
包含 Nginx+PHP+MySQL 安装包,还有 OpenSSL 安装包和几个实用 bat 小脚本,涵盖了从搭建 Nginx,自签署 SSL 证书,配置 HTTPS ,部署和配置 Windows PHP 服务器环境,连接 MySQL 的全部所需软件。Linux 可能是搭建...
这个小脚本是用PHP编写的,很可能用于自动化这个过程,帮助用户快速地获取大量书籍信息,可能是为了分析、比较或者构建某种图书相关的应用。 "JavaScript"标签可能意味着在脚本的修改过程中,部分代码或功能被转换...
为了解决这个问题,作者编写了一个小脚本,简化了这一过程。 接下来,我们深入0x01部分,看看实际的Python代码。代码首先引入了几个必要的库:os(用于操作系统交互),time(处理时间),argparse和optparse(处理...
* 产生内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在小脚本中,所有的脚本在服务器端执行。 三、技术比较 * ASP、PHP和JSP都是面向Web服务器的技术,客户端浏览器不需要任何附加的软件支持。 * 三者都提供...
1. **内容与显示分离**:JSP通过标识和小脚本生成动态内容,让网页设计和内容生成逻辑分离,提高了代码的可维护性和复用性。 2. **组件驱动**:JSP依赖于JavaBeans和Enterprise JavaBeans等组件,实现跨平台的复用,...
5. **模板引擎**:为了方便快速生成动态网页,小脚Miss博客可能使用了模板引擎,如Twig(PHP)、Jinja2(Python)或EJS(JavaScript),将静态HTML模板与动态数据结合。 6. **版本控制系统**:文件名中的“master”...
纹理图集转换器 我制作了这个项目来将 XML 纹理图集转换为 JSON 以在使用 我下载了众多游戏资产包(我强烈推荐),但所有这些都... php convert.php TextureAtlas.xml 它会在同一个文件夹中输出一个 JSON。 十分简单!
微观健康检查这是对内部服务执行健康检查/ping 的微型 ... 响应输出是 JSON,将是以下两个响应之一: { "status":"Connection successful"}或者 { "status":"Unable to connect"}PHP ####MySQL > php/mysqlConnect.ph
这个小脚本和类集合应该从 api文档提要中生成集合。 目前仅支持1.2规范,而在业余时间仅进行2.0方面的工作。 例子: $ ./swag2pm.php Usage: ./swag2pm.php <swagger> $ ./swag2pm.php ...
"zipclean"是一个针对这种情况设计的简单PHP脚本,它的主要功能是在解压ZIP文件并将文件分散到当前工作目录后,对不再需要的旧版本文件进行清理。这个脚本旨在提高工作效率,避免不必要的文件堆积,并确保工作目录...