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"; } }
终于,我觉得这样的层次能足够满足需求和未来的可扩展性了。
相关推荐
本文给大家分享的是使用php实现暴力破解mysql的小脚本代码,非常的好用,有需要的小伙伴可以参考下
用PHP编写的用于AWS SES跳出率监控的小脚本。 而且,它可以轻松地与Nagios或其他工具集成。 但为什么?? 查找有关SES和跳出率的更多信息: 项目设置 $ composer install $ cp src/config/parameters.yml.dist src/...
查询CFDI服务PHP 中的一个小脚本,允许您连接到 SAT 的 WS 以验证 CFDI 的状态。
包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】...
删除 CryptoPHP 恶意软件的小脚本 重要提示:在您自己的风险下使用它,我们不提供任何保证 用法 将其上传到您的网站,运行起来很简单:) 更多信息 Fox-it 团队发现的加密 php 您可以和上阅读更多信息
小项目我写的小脚本的集合列表vagrant-php.sh -- 用于 PHP 开发的 Vagrant 配置脚本。 这个脚本基于@rrosiek gist: ://gist.github.com/rrosiek/8190550
topbooks_PCC 从 Google Books API 中提取数据的小脚本。 PHP 由 Tamara Marnell 编写并由我修改。
包含 Nginx+PHP+MySQL 安装包,还有 OpenSSL 安装包和几个实用 bat 小脚本,涵盖了从搭建 Nginx,自签署 SSL 证书,配置 HTTPS ,部署和配置 Windows PHP 服务器环境,连接 MySQL 的全部所需软件。Linux 可能是搭建...
纹理图集转换器 我制作了这个项目来将 XML 纹理图集转换为 JSON 以在使用 我下载了众多游戏资产包(我强烈推荐),但所有这些都... php convert.php TextureAtlas.xml 它会在同一个文件夹中输出一个 JSON。 十分简单!
压缩清洁 可笑的简单小脚本,可在 zip 文件将文件散布到当前目录后进行清理。 它试图变得聪明并在删除它们之前验证文件大小和时间戳是否与 zip 文件中的版本匹配。
微观健康检查这是对内部服务执行健康检查/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 ...
我的第一笔赏金是基于识别泄漏PHP源代码。 服务器不是在解释/渲染它,而是将其发送回客户端。 该工具只是通过允许用户通过stdin传递URL列表并吐出任何结果来尝试帮助实现自动化。 有任何问题,请通知我! 我打算...
## 英语:这是一个用 HTML/CSS、PHP 和 JS 编写的小脚本,用于保存和结构化 etherpad/ethercalc 实例的链接。 此脚本针对 framasoft 网络 ( ) 进行了优化,但它不是 framasoft 产品。 ### 要求:HTTP 服务器(如 ...
Jira Webhook 侦听器 一小组脚本,用于捕获 JIRA Webhook 事件并运行自定义操作(例如向非 JIRA 用户... 这个项目的创建是为了满足一个非常特定的需求,但希望它可以成为其他人的有用基础。 问题跟踪 ...执照 GNU GPL V2
如果您想检查这些数据以进行调试,您通常会编写一个小脚本来加载您的类(反序列化所需的类),获取数据并显示 var 转储。 ser-pretty 通过简单地从序列化数据呈现var_dump()输出来弃用脚本步骤,而无需获取类源。 ...
这个小脚本挂钩到并在每个 Build 上自动安装 PHPUnit,因此您不必这样做。到底有什么好处呢? 非常适合测试具有多个 PHP 版本的库。 我已经用这个挠痒痒了。 以前,我必须在每个我想用 PHPUnit 测试的 PHP Build 上...
TinyURL PHP脚本,它将长URL缩短为一个不错的小脚本
最初,它只是用于测试小脚本,但是我发现它可以对其他有用的程序有所帮助,因此决定将其维护为单独的自治程序包。 希望,你会喜欢的) 作者– Nazar Mokrynskyi Nazar Mokrynskyi版权所有(c)2013 特征 通过...
Amp-link-check.zip,一个小脚本,用于检查一个或多个断开链接的url。,amp是php的一个非阻塞并发框架。它提供事件循环、承诺和流,作为异步编程的基础。