zoukankan      html  css  js  c++  java
  • thinkphp3.2.3定时任务 不能获取本模块config, 不能获取本模块的其他配置

    一开始创建就有一个home模块
    再创建一个Data模块

    定时任务在/Application/Common/Conf/crons.php中,这里不讲怎么创建定时任务。

    Data模块的配置文件路径如下
    /Application/Data/Conf/config.php


    定时任务中的逻辑是会调用Data模块的代码,竟然无法读取到Data中的配置文件,或者是4次有1次能读到配置,这个太不稳定了也不正常。

    如果使用Data模块的接口调用,就可以读到配置文件。

    对我产生的影响:
    1. 微信模板消息是读取Data下的自定义的json模板,使用Data测试接口模板消息正常发送,上线后在定时任务中就不正常。
    2. 定时任务中无法读取到Data中config.php的一些固定数据,这个发现比较及时。


    最终怀疑到定时任务读取路径上,输出日志后果然是这样
    后来打日志追踪配置文件路径,使用MODULE_PATH输出路径
    20%的概率输出
    /Application/Data/Conf/config.php
    80%的概率输出
    /Application/Home/Conf/config.php

    这太TM坑了。

    结论:
    如果不用定时任务使用Data模块中接口去读Data模块的配置,就没有问题。
    使用定时任务各种路径和配置会以默认模块Home为准。
    解决办法一:使用绝对路径
    解决办法二:将配置写入全局的配置文件中 /Application/Common/Conf中

    如果在非默认模块Home下有自定义的json模板文件等,可以使用方法一

  • 相关阅读:
    树莓派研究笔记(2)-- 安装Nginx 服务器,PHP 和 SQLite
    树莓派研究笔记(1)-- 安装Mono
    Qemu虚拟机 玩树莓派最新版系统 (截止2017-04-10)
    CLRInjection
    CLRMonitor
    Xamarin Mono for VS开发窗体标题(Title)乱码解决方案
    精美3D中国象棋
    怀旧系列(5)----大学时代的疯狂
    怀旧系列(4)----文曲星编程GV-Basic
    怀旧系列(3)----Pascal
  • 原文地址:https://www.cnblogs.com/yuzhould/p/9944836.html
Copyright © 2011-2022 走看看