PHP 对交易对汇率 转换
业务需求 nuls_bx 交易对牟定盘口做市但是要求牟定 bx_usdt 主流交易对, 真实晕 写了个递归 经过测试可用 转换路径如下nuls_btc btc_usdt bx_eth eth_usdt 经过 四个交易对 转换成目标交易对 汇率 <?php// 都需要对标 bx_usdt$symbol = 'nuls_coin';$benchmarkSymbolList = ['nuls_btc' , 'btc_usdt', 'coin_usdt'];$benchmarkData = [ 'nuls_btc' => [ '0.00015635', '0.00015832', ], // 'coin_btc' => [ // '0.00000278', // 买 // '0.00002329...
解决 `unix:///tmp/supervisor.sock no such file` 的问题
在使用 Supervisor 作为进程管理工具时,您可能会遇到 unix:///tmp/supervisor.sock no such file 错误。这通常表示 Supervisor 未能创建其 UNIX 套接字文件,或者该文件已被删除或未正确配置。以下是一些常见原因及解决方法。 1. 确保 Supervisor 正在运行首先,确保 Supervisor 服务正在运行。可以使用以下命令检查其状态: sudo supervisorctl status 如果 Supervisor 未运行,您可以使用以下命令启动它: sudo service supervisor start 或(根据您的系统): sudo systemctl start supervisor 2. 检查配置文件Supervisor 的配置文件通常位于 /etc/supervisor/supervisord.conf。请确保以下配置项正确: [unix_http_server]file=/tmp/supervisor.sock ; (the path to the socket file)[superv...
无法在服务器使用 `curl` 命令访问 HTTPS 域名的问题
在服务器上使用 curl 命令访问 HTTPS 域名时,可能会遇到一些问题。这些问题通常与 SSL/TLS 证书、网络配置、curl 配置等有关。以下是一些常见问题及其解决方案。 1. 检查 curl 是否已安装首先,确保您的服务器上已经安装了 curl。可以通过以下命令检查: curl --version 如果未安装,可以使用以下命令安装: 在 Debian/Ubuntu 系统上:sudo apt updatesudo apt install curl 在 CentOS/RHEL 系统上:sudo yum install curl 2. 检查网络连接确保您的服务器能够连接到互联网。可以使用 ping 命令测试网络连接: ping google.com 如果无法 ping 通,您可能需要检查网络配置或防火墙设置。 3. 证书问题如果 curl 无法访问 HTTPS 域名,可能是由于 SSL/TLS 证书问题。您可以使用 -k 或 --insecure 选项忽略证书验证(不推荐在生产环境中使用): curl -k https://...
在 Linux 中查看 YUM 历史安装软件列表
YUM(Yellowdog Updater Modified)是 Red Hat 系列 Linux 的一个包管理工具。通过 YUM,您可以轻松地安装、更新和管理软件包。在使用 YUM 时,有时您可能需要查看历史安装的软件列表,以便进行系统维护或故障排除。本文将介绍如何查看 YUM 的历史安装记录。 1. 查看 YUM 历史YUM 提供了一个命令来查看所有的历史事务,包括安装、更新和删除软件包。这可以通过以下命令实现: yum history 示例输出执行上述命令后,您将看到类似如下的输出: ID | Command Line | Date and Time | Action(s) | Altered------------------------------------------------------------------------------- 10 | install httpd | 2024-01-15 10:00 | Install | 1 9 | update ...
另类的遍历PHP数组方法
在 PHP 中,遍历数组有多种方法,除了常见的 foreach 和 for 循环之外,还有一些另类的方法可以让代码更具可读性或更具趣味性。以下是一些不同的遍历数组的方法: 1. 使用 array_walk()array_walk() 函数可以遍历数组并对每个元素应用一个回调函数。 示例$array = [1, 2, 3, 4, 5];array_walk($array, function($value, $key) { echo "Key: $key; Value: $value\n";}); 2. 使用 array_map()array_map() 函数对数组的每个元素应用回调函数,并返回一个新数组。 示例$array = [1, 2, 3, 4, 5];$newArray = array_map(function($value) { return $value * 2;}, $array);print_r($newArray); 3. 使用生成器(Generators)生成器可以在遍历大数组时节省...
Nginx 访问 IP 数量统计
在 Nginx 中,您可以通过多种方式统计访问的 IP 数量。以下是几种常用的方法来实现这一目标。 1. 使用 Nginx 日志Nginx 通常会记录访问日志,您可以通过分析这些日志来统计访问的 IP 数量。 1.1 配置 Nginx 日志确保在您的 Nginx 配置文件中启用了访问日志。默认情况下,访问日志通常在 /var/log/nginx/access.log。配置示例如下: http { log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/...
PHP团队代码规范
今天看同事的代码非常闹心, 也许是我个人问题吧. 我认为 团队开发前一定要制订一份 开发规范. 在国外可以挽救你的生命, 百度了一份看上去不错的规范 自己改了一些 . 一、基本约定1、源文件(1)纯PHP代码源文件只使用 ; (2)源文件中PHP代码的编码格式必须是无BOM的UTF-8格式; (3)使用 Unix LF(换行符)作为行结束符; (4)一个源文件只做一种类型的声明,即,这个文件专门用来声明Class, 那个文件专门用来设置配置信息,别混在一起写; 2、缩进使用Tab键来缩进,每个Tab键长度设置为4个空格; 3、行一行推荐的是最多写120个字符,多于这个字符就应该换行了,一般的编辑器是可以设置的。 4、关键字 和 True/False/NullPHP的关键字,必须小写,boolean值:true,false,null 也必须小写。 下面是PHP的“关键字”,必须小写: '__halt_compiler', 'abstract', 'and', 'array', ...
Linux 快速复制大量小文件方法 nc+tar
在 Linux 中,使用 nc(netcat)和 tar 可以高效地复制大量小文件。这种方法适用于网络传输和本地复制。以下是详细步骤和示例。 使用 nc 和 tar 复制小文件1. 准备工作确保目标系统上安装了 tar 和 netcat。大部分 Linux 发行版默认安装了这两个工具。 2. 在接收方(目标机器)上监听在目标机器上,使用 nc 监听一个端口,并通过 tar 解压接收到的数据。假设您使用的是端口 12345: nc -l -p 12345 | tar xvf - 3. 在发送方(源机器)上发送数据在源机器上,使用 tar 将要复制的文件打包并通过 nc 发送到目标机器的 IP 地址。假设您要复制的文件在 /path/to/files 目录: tar cf - -C /path/to/files . | nc <目标机器的IP地址> 12345 4. 示例步骤4.1 在目标机器上 打开终端,运行以下命令来监听端口: nc -l -p 12345 | tar xvf - 4.2 在源机器上 打开另一个终端,运行以下命令来发送文件: tar cf -...
查询Mongo 用的是什么引擎
MongoDB 使用的是 WiredTiger 存储引擎,这是其默认的存储引擎。WiredTiger 在设计上注重性能和压缩,支持多线程并发和事务,适合高负载和多用户环境。 1. MongoDB 存储引擎概述1.1 WiredTiger 默认存储引擎:从 MongoDB 3.2 版本开始,WiredTiger 成为默认的存储引擎。 特性: 高性能:通过多线程和并发控制提高读写性能。 数据压缩:支持多种压缩算法(如 Snappy 和 zlib),可以减少存储空间。 事务支持:支持 ACID 事务,允许在多个文档之间进行原子操作。 1.2 MMAPv1 早期存储引擎:在 MongoDB 3.0 之前,MMAPv1 是默认的存储引擎。 特性: 简单性:基于内存映射文件,易于理解。 缺点:不支持并发写入,性能较差,且不支持事务。 1.3 其他存储引擎在 MongoDB 中,还可以使用其他存储引擎,例如: In-Memory Storage Engine:专为需要极高性能的应用设计,数据存储在内存中。 Encrypted Storage Engine:提供数据加密...
Supervisor 进程子进程管理
之前使用 Supervisord 守护 swoole 服务 问题restart 服务后 master 进程重启了 并拉起新的worker 进程, 但是老的worker 进程并没有kill我都是通过 shell 脚本实现子进程kill 的工作 就在刚才我同事的服务跪了, 我俩总结了原因 并告诉如下配置, 可以控制子进程 只需要在每个任务配置, 就可以对子进程进程管理. stopasgroup=true;killasgroup=true; Jenkins 配合 Supervisor 上线 swoole 服务 一定要保证所有swoole进程kill 否则由于 Jenkins 版本控制分配不同目录 导致worker 重启后 include 文件 加载失败 学费很贵 2小时 300美刀 记录下



