PHP 邮箱邮件发送 腾讯QQ企业邮件发送
PHP 邮箱邮件发送 腾讯QQ企业邮件发送 单文件版 code:https://github.com/harry-1012/PHP_Email_OneFile/tree/main <?phpclass Email{ /** * @param Type reqData["title"] 邮件subject 主题 * @param Type reqData["content"] 邮件内容 * @param Type reqData["fromname"] 发件人姓名 * @param Type reqData["receiver"] 收件人邮箱 * @return boolean 发送成功会返回true,失败false */ public function qqComMailSend($reqData = null) { if (empty($reqData)) { ...
PHP批量模糊清空Redis redis->scan key*
PHP批量模糊清空Redis <?php$redis = new \Redis();$redis->connect('127.0.0.1',6379); $redis->setOption(\Redis::OPT_SCAN, \Redis::SCAN_RETRY);while ($arr_keys = $redis->scan(NULL, "key_*", 5)) { call_user_func_array([$redis, 'del'], $arr_keys); echo var_export($arr_keys, true) . PHP_EOL;}
go利用nginx实现热重载热更新平滑重启 golang不停服更新 go热升级
平滑重启(热重启)是指WebServer在重启的时候不会中断已有请求的执行/该特性在不同的项目版本发布的时候特别有用,例如,当需要先后发布两个版本:A、B,那么在A执行的过程当中,将服务平滑重启至B版本,具体做法如下 利用nginx的反向代理转发go服务端口,例如服务apiv1端口是1001,服务apiv2端口是1002, 现有nginx.conf配置如下 server{ # golang api location /golangapi/ { proxy_pass http://127.0.0.1:1001/; }} 假设现在我们需要将服务平滑重启至apiv2:1002,则只需要将nginx配置改为: server{ listen 80; server_name abc.com; # golang api location /golangapi/ { proxy_pass http://127.0.0.1:1002/;#这里更改端口号 ...
gorm Raw查询报错 sql converting argument $1 type unsupported type struct {}, a struct; invalid value, should be pointer to struct or slice; invalid value, should be pointer to struct or slice
golang gorm 查询时提示如下,即使sqlParam已经初始化过也一直提示无效值 报错内容sql: converting argument $1 type: unsupported type struct {}, a struct; invalid value, should be pointer to struct or slice; invalid value, should be pointer to struct or slice 原因:发起查询时,Raw方法第二个参数不能为空,并且需要在Raw方法的第一个sql语句中有调用@第二个参数中的字段 解决方案:增加 Placeholder , 初始化值为1,并在sql语句中调用 @Placeholder , 或者根据请求情况,增加判断是否要传入Raw方法的第二个参数 sql := "SELECT * FROM test WHERE @Placeholder " //SELECT * FROM test WHERE 1var sqlParam struct { Applyno ...
go goroutine chan 并发/通道 异步处理微信订单分账
最近在开发微信服务商,申请分账需要对每个订单单独发起,于是用到了golang的协程 ch := make(chan int, runtime.NumCPU())for i := 0; i < len(wechatOrderList); i++ { go modifyWxOrderProfit(&wechatOrderList[i], ch) ch <- i}close(ch)// 处理分账订单func modifyWxOrderProfit(wechatOrder *order.WechatOrder, ch chan int){ // 发起微信订单分账请求 // client.POST()... for v := range ch { fmt.Println("当前异步处理的是第",v,"个订单") }}
Python批量替换文件名,Python批量修改文件名前缀
import os#设定文件路径path="F:\\需要修改的文件路径\\"#遍历文件for file in os.listdir(path): if os.path.isfile(os.path.join(path,file))==True:#设置新文件名 new_name=file.replace("要替换的老的文件名内容","新的文件名内容")#重命名文件 os.rename(os.path.join(path,file),os.path.join(path,new_name))print ("complete!")
Mysql5.7数据库降级到5.6版本
从MySQL 5.7版本的数据库导出sql文件后,导入到MySQL 5.6版本的数据库中报如下错误 Specified key was too long; max key length is 767 bytes 错误提示索引字段长度首先,最大长度767 bytes 在*.sql文件中增加如下设置: 首先设置MySQL的全局参数innodb_large_prefix=ON,将InnoDB表的索引长度上限扩大到3072个字节 set global innodb_large_prefix = ON; 指定innodb文件格式为Barracuda set global innodb_file_format=Barracuda;set global innodb_file_format_max=Barracuda; 最后成功导入