`
文章列表
laravel/lumen的事件、任务调度等都是基于队列来实现的,但由于php是进程模式,除非部署第三方模块,否则无法像java那样通过创建线程来实现并发执行。这对于laravel来说实在非常不方便,只能一个任务执行完再执行下一个任务,效率极其低下,而且容易阻塞。但并发任务的需求又非常常见,下面就基于laravel自行实现一个并发任务模块。 1、要实现并发,就要先解决在PHP进程内创建新进程的问题。通过PHP本身是没有办法的,因此采用执行外部Shell脚本的方式启动新的PHP进程。但默认情况下,system、exec等方式执行shell时都是阻塞的,按网上文章说的用popen测试,也不成功。最 ...
在后台的路由中间件中要增加跨域设置: namespace App\Http\Middleware; //跨域中间件 class BeforeCorsMiddleware { /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, \Closure $next) { a ...
组件代码 <template> <el-form-item label="验证"> <div class="form-inline-input"> <div class="code-box" id="code-box"> <input type="text" name="code" class="code-input" /> &l ...

lumen集成结巴分词

常规的方法是通过compoer集成 composer require fukuball/jieba-php:dev-master 但有些时候(比如我的项目)comper一直都没法update成功,这时候可以用手动方式集成。 1、下载项目文件 git clone https://github.com/jonnywang/phpjieba.git 或者直接上github上打包下载文件 2、复制到文件 将src目录复制到目标项目的/vendor/fukuball/jieba-php 3、修改加载配置 修改bootstrap/app.php require_once __ ...
这段代码是从网上抄的,唯一需要注意的是页面必须部署在Https网站下,否则Android手机可能由于安全原因定位失败。 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=*******"></script> <title>百度 ...
Fabric节点类型总结: 一、Peer节点 1)所有的Peer节点都是记账节点(Committeer),负责验证从排序服务节点区块里的交易,维护状态数据和账本的副本。 2)部分节点会执行交易并对结果进行签名背书,充当背书节点。背书节点是动态的角色,是与具体链码绑定的。(安装了具体链码的节点相对于这类链码即为背书节点) 3)还有一种角色是主节点(Leader Peer),代表的是和排序服务节点通信的节点,负责从排序服务节点处获取最新的区块并在组织内部同步。可以强制设置为主节点,也可以动态选举产生。 4)有的节点同时是背书节点和记账节点,也可以同时是背书节点、主节点和记账节点,也可以只是记账节点 ...
一、基本概念 1、有储备资产,可以成为普通意义上的货币 2、有独立的协会进行管理 3、面向各个国家 二、技术架构 1、不是纯粹的区块链,只是上面一层是区块链 2、性能不能支撑交易的并发量 三、libra如何保证币值稳定 1、 ...
Jboot通过ShardingJDBC实现分库分表,但是分库分表函数主要是通过字段值进行计算,但如果分库方式与数据无关,并且分库需要在运行时动态新增配置就无法满足要求。 下面是通过改造基本Model类,并动态配置数据源的方法: 1、新增数据源缓存类    注意,configName要使用线程本地类,JBoot非线程安全。 public class DataConfigName { private static DataConfigName me; @JSONField(serialize = false) transient private ThreadLoc ...
lumen默认支持多数据源,但如果系统存在多个结构相同的数据库实例,并根据某特定请求参数访问不同的实例,那么可以通过中间件实现动态配置。 1、在app/config/database.php文件中配置默认mysql数据库连接参数 2、在默认库中创建一个配置表,其中保存各数据库分库的配置,如下表(以corpid做分库条件),这个表只需要在主库中创建并维护 引用 CREATE TABLE `corp_database` (   `corpid` varchar(50) NOT NULL DEFAULT '' COMMENT '租户id',   `read_host` varchar(100) NO ...
微信支付的接入申请有个很大的坑。 在申请APP支付功能时,需要在开放平台新增应用,新增成功后会自动产生一个APPID,还会重置APPSecret,但这个AppSecret并没有什么鸟用,它是不能用于产生统一下单接口的签名的。 真正用于签名的密钥是API密钥。而这个密钥是需要在“商户平台--账户中心--API安全”中进行设置,这个密钥是可以自己设定的。 总结起来就是发起统一订单接口的三个参数的来源: AppID:开放平台 商户ID:商户平台 APISecret:商户平台
由于支付宝SDK只支持php7.1,因为需要删除之前安装的7.2版,进行降级。通过yum remove不能完全删除php,必须通过rpm方式卸载。由于php安装模块间有依赖,因此需要按顺序进行卸载。如下: rpm -e php72w-fpm-7.2.13-1.w7.x86_64 rpm -e php72w-mysqlnd-7.2.13-1.w7.x86_64 rpm -e php72w-pecl-redis-3.1.6-1.w7.x86_64 rpm -e php72w-pecl-igbinary-2.0.5-1.w7.x86_64 rpm -e php72w-pdo-7.2.13 ...
前提:使用Eloquent访问mongodb class ResourceModel extends Eloquent { protected $collection = 'resource'; protected $connection = 'mongodb'; } 1、新增 class ResourceService extends BaseService { private $collection; private $resourceModel; public function __construct() { parent: ...

lumen5.5使用rabbitmq

在composer.json中的require中增加以下语句 "php-amqplib/php-amqplib":"2.6.*", "vladimir-yuldashev/laravel-queue-rabbitmq": "5.5" 然后执行 composer update 如果要在lumen中通过shell调用rabbitmq的命令,需要将php执行用户添加到/etc/sudoers文件中,并且修改后需要把文件置为只读,否则会抛出警告信息。 执行语句如下: $cmd = 'sudo rabbitmq ...
1. 安装mongodb扩展 执行sudo pecl install mongodb 如果是windows,到https://windows.php.net/downloads/pecl/releases/mongodb/选择对应的版本下载,并把php_mongodb.dll复制到php的ext目录 2. 配置扩展 在php.ini中增加以下语句 extension=mongodb.so 3. 在lumen中引入mongodb驱动 在composer文件添加"jenssegers/mongodb": "3.4.5",然后执行 compo ...
lumen是laravel的简化版,其中artisan部分删除了大部分的command,无法按laravel方式创建自定义的artisan命令。但仍然可以按以下方式创建: 1、在app/Console/Kernel.php文件中声明要创建类 protected $commands = [ Commands\SomeClass1::class, Commands\SomeClass2::class, ] 2、在app/Console/Commands目录中创建对应的类。必须在里面声明命令$signature和handle方法 namespace App\Conso ...
Global site tag (gtag.js) - Google Analytics