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模板文件等,可以使用方法一

  • 相关阅读:
    Kali学习笔记38:文件上传漏洞
    Kali学习笔记37:APPSCAN
    Kali学习笔记36:AVWS10的使用
    Kali学习笔记35:使用VBScript、PowerShell、DEBUG传输文件
    Kali学习笔记34:配置TFTP和FTP服务
    《day13--异常的进阶和包的使用》
    《java作业》
    《day12---异常》
    《AppletButtonEvent.java》
    《CheckboxDemo.java》
  • 原文地址:https://www.cnblogs.com/yuzhould/p/9944836.html
Copyright © 2011-2022 走看看