shopnc定时任务计划分析

工作的记录

linux下执行命令

crontab -e
# B2B2C商城 Linux下定时任务设置示例
# php安装路径 /usr/local/php
# 商城安装路径 /wwwroot

# 执行频率:10分钟,[更新商品促销状态、首页商品信息、邮件通知等]
*/10 * * * * /usr/local/php/bin/php /wwwroot/crontab/index.php minutes
# 执行频率:1小时,[更新全文索引]
0 */1 * * * /usr/local/php/bin/php /wwwroot/crontab/index.php hour
# 执行频率:1天,[订单超期自动处理、售后超时处理、代金券虚拟码等过期提醒、更新统计等]
0 3 * * * /usr/local/php/bin/php /wwwroot/crontab/index.php date
# 执行频率:1个月,[生成结算]
0 4 1 * * /usr/local/php/bin/php /wwwroot/crontab/index.php month

shopnc 入口处理

require __DIR__ . '/../base.php';
if (PHP_SAPI == 'cli') {
    $_GET['act'] = $_SERVER['argv'][1];
    $_GET['op'] = empty($_SERVER['argv'][2]) ? 'index' : $_SERVER['argv'][2];
}

加载了自己的核心类库及框架,通过自动加载注册了所有模型及逻辑层

这里主要是初始化控制器和方法

通过argv传递参数。

注册周期结束函数

public function shutdown()
{
    exit("success at " . date('Y-m-d H:i:s', TIMESTAMP) . "\n");
}
public function __construct()
{
    register_shutdown_function(array($this, "shutdown"));
}

默认方法

/**
* 默认方法
*/
public function indexOp()
{

    //更新订单商品佣金值
    $this->_order_commis_rate_update();

    //订单超期后不允许评价
    $this->_order_eval_expire_update();

    //订单超期后不允许追加评价
    $this->_order_eval_again_expire_update();

    //门店自提订单、支付方式为门店支付的订单7天内未自提自动取消
    $this->_order_chain_timeout_cancel();

    //预定订单及时支付尾款提醒
    $this->_order_book_end_pay_notice();

    //订单自动完成
    $this->_order_auto_complete();

    //预定订单超时未付尾款取消订单
    $this->_order_book_timeout_cancel();

    //自提点中,已经关闭的订单删除
    $this->_order_delivery_cancel_del();

    //更新订单扩展表收货人所在省份ID
    $this->_order_reciver_provinceid_update();

    //更新退款申请超时处理
    Model('trade')->editRefundConfirm();

    //代金券即将过期提醒
    $this->_voucher_will_expire();

    //虚拟兑换码即将过期提醒
    $this->_vr_code_will_expire();

    //更新商品访问量
    $this->_goods_click_update();

    //更新商品促销到期状态
    $this->_goods_promotion_state_update();

    //商品到货通知提醒
    $this->_arrival_notice();

    //缓存订单及订单商品相关数据
    $this->_order_goods_cache();

    //会员相关数据统计
    $this->_member_stat();

    // 取消无货后门店商品的标记
    $this->_delivery_goods_sign_update();

    //生成结算
    $this->_create_bill();
}

以上是一个完整的流程,其他人可以参考这个模块进行设计。

以上功能也可以重新编写。。

添加自己的初始化功能,或者更改某些功能。

添加新评论