thinkphp5 队列 think-queue 使用要点
tp5的文档还算齐全,但是关于这个队列的说明太过潦草经过我大量测试和实践证明以下观点 关于时间 Redis驱动时有个 expire 配置,这实际上是针对整个 队列 来说的,最终效果就是这个队列如果有失败等状况,过expire时间他会重试 listen模式下,控制台timeout参数控制的时,某个任务也就是job的执行最大时间,超时会引起致命错误,导致队列不能用了,要手动启动 关于代码 work模式下,更新代码要手动重启队列 异常错误1throw new \Exception('joblog'); work模式下,抛出错误,队列能用,日志会有记录,控制台没有显示 listen模式下,代码抛出错误,队列能用,日志没有记录,控制台有显示 文件加载 数据库配置因为队列跑在控制台里,这个队列不加载模块的数据库配置队列配置放在 1application\extra\queue.php 数据库配置在 1application\database.php
redis下载 配置
windows版https://github.com/MicrosoftArchive/redis/releases 绑定多个ipbind 127.0.0.1 172.16.1.192
按 01分布 正态分布 生成红包 PHP算法
稍微有点问题小数时,并不准确,但是整数时,经过大量测试是准确的 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114class BuildPocket{ /** * 生成红包数组 * * @param integer $bonus_total 总额 * @param integer $bonus_count 个数 * @param integer $bonus_max 最大 * @param integer $bonus_min 最小 */ public static funct...
php 小数点 错误 浮点型相乘错误
参考文献http://php.net/manual/zh/language.types.float.phphttp://php.net/manual/zh/book.bc.php 浮点计算精度有限有小数点时不能直接比较大小相乘也要小心 应该使用专业的函数bccomp比较大小 实例 123456var_export(100*'1.1');// 110.00000000000001var_export(100*'1.1' == 110);// falsevar_export(bccomp(100*'1.1' , 110 ));// 0 小数计算非常小心 1100*'1.1' 比较大小时 他是按一堆0的var_export也是一堆0var_dump 确实没有一堆0 有小数的计算要用bc系列计算函数实例 1234// 设置默认精度2位小数bcscale(2);// 相乘var_export(bcmul(0.1,9));
Access denied for user 'root'@'localhost' (using password- NO) 解决办法
123456789# /etc/init.d/mysql stop# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &# mysql -u root mysqlmysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root';mysql> FLUSH PRIVILEGES;mysql> quit# /etc/init.d/mysql restart# mysql -uroot -pEnter password: <输入新设的密码newpassword> 原文地址https://www.cnblogs.com/qq78292959/p/3641972.html
记录一次字符串传递错误
今天将id加密后传到其他页面做一些事情结果开始用的get方式,一直出错 原来+ = 这些符号在get时会变空 后来改为用post方式就好了
thinkphp 5.0.10 模型 自动 时间戳 bug
当模型中同时启用 12protected $autoWriteTimestamp = true;protected $field = ['bill_type', 'create_time']; 必须将create_time放入$field中,才可以操作,否则时间戳写入失败
jq 判断checkbox是否被选中
1$('#male')[0].checked
thinkphp 不同终端 session共享
解决方法thinkphp可以自定义sessionid,自己维护这个sessionid即可实现会话在不同终端的共享 具体实例12config('session.id',$sessionid);session('user', $openid); 这里的sessionid可以通过自己定义 应用场景可以基于微信做具有吸粉功能的网站扫码登陆,便于用户留存可以用微信临时二维码传递sessionid到扫码结果,然后后端存储用户信息前端进行轮询,查询登陆状态,合理跳转 易发问题这里看实例很简单,其实容易发生使用错误根据实测,后端要保证session配置一致,最好办法就是用config去配置id值如果用session::init($config)或者session($config)很可能无法共享,这个是我遇到过的问题
thinkphp5.0.10 疑似bug
使用TP5软删除,如果在类顶部引入SoftDelete trait将影响find等条件,导致出错