Framework

DRF parsers: 微信支付对接相关工具函数

╄→гoц情女王★ 提交于 2020-08-19 13:13:57
需求 微信支付对接 xml数据解析 todo 整理流程细节 支付流程 退款流程 订单取消逻辑 微信文档 views需要自己指定解析器和渲染器 view.py class WeChatNotifyPayView(APIView): """ 微信支付回调接口 """ authentication_classes = [] permission_classes = (AllowAny,) parser_classes = (WeChatPaymentXMLParser, ) renderer_classes = (WeChatPayXMLRender, ) # serializer_class = PayRecordSerializer def initialize_request(self, request, *args, **kwargs): """ Returns the initial request object. """ parser_context = self.get_parser_context(request) logger.info(request.body) return Request( request, parsers=self.get_parsers(), authenticators=self.get_authenticators(),

JAVA层HIDL服务的注册原理-Android10.0 HwBinder通信原理(八)

陌路散爱 提交于 2020-08-18 20:45:17
摘要:本节主要来讲解Android10.0 JAVA层HIDL服务的注册原理 阅读本文大约需要花费22分钟。 文章首发微信公众号:IngresGe 专注于Android系统级源码分析,Android的平台设计,欢迎关注我,谢谢! [Android取经之路] 的源码都基于Android-Q(10.0) 进行分析 [Android取经之路] 系列文章: 《系统启动篇》 Android系统架构 Android是怎么启动的 Android 10.0系统启动之init进程 Android10.0系统启动之Zygote进程 Android 10.0 系统启动之SystemServer进程 Android 10.0 系统服务之ActivityMnagerService Android10.0系统启动之Launcher(桌面)启动流程 Android10.0应用进程创建过程以及Zygote的fork流程 Android 10.0 PackageManagerService(一)工作原理及启动流程 Android 10.0 PackageManagerService(二)权限扫描 Android 10.0 PackageManagerService(三)APK扫描 Android 10.0 PackageManagerService(四)APK安装流程 《日志系统篇》 Android10.0

Native层HIDL服务的获取原理-Android10.0 HwBinder通信原理(七)

我的未来我决定 提交于 2020-08-18 20:43:20
摘要:本节主要来讲解Android10.0 Native层HIDL服务的获取原理 阅读本文大约需要花费23分钟。 文章首发微信公众号:IngresGe 专注于Android系统级源码分析,Android的平台设计,欢迎关注我,谢谢! [Android取经之路] 的源码都基于Android-Q(10.0) 进行分析 [Android取经之路] 系列文章: 《系统启动篇》 Android系统架构 Android是怎么启动的 Android 10.0系统启动之init进程 Android10.0系统启动之Zygote进程 Android 10.0 系统启动之SystemServer进程 Android 10.0 系统服务之ActivityMnagerService Android10.0系统启动之Launcher(桌面)启动流程 Android10.0应用进程创建过程以及Zygote的fork流程 Android 10.0 PackageManagerService(一)工作原理及启动流程 Android 10.0 PackageManagerService(二)权限扫描 Android 10.0 PackageManagerService(三)APK扫描 Android 10.0 PackageManagerService(四)APK安装流程 《日志系统篇》 Android10.0

Deno上传文件

醉酒当歌 提交于 2020-08-18 06:51:35
Deno上传文件 视频讲解 https://www.bilibili.com/video/BV1BT4y1E7Nh/?p=6 我们一起来完成以下步骤: 沿用之前的工程代码 创建上传页面和响应的controller 添加上传文件功能 测试 #controllers/controller.ts const { cwd } = Deno; class Controller { static async getData(ctx: any){ //cwd获取当前工程目录 //注意 ' !== ` ctx.render( ` ${cwd()} /views/index.ejs` ,{ title : "Testing" , data :{ name : "deepincoding" } }); } static async uploadPage(ctx: any){ ctx.render( ` ${cwd()} /views/upload-page.ejs` ); } static async uploadAction(ctx: any){ //我们这里不返回页面,而是返回上传文件的信息 ctx.response.body = ctx.uploadedFiles; } } export default Controller; #routers/index.ts import { Router

旧 WCF 项目迁移到 asp.net core + gRPC 的尝试

被刻印的时光 ゝ 提交于 2020-08-18 06:26:00
一个月前,公司的运行WCF的windows服务器down掉了,由于 AWS 没有通知,没有能 第一时间 发现问题。 所以,客户提出将WCF服务由C#改为JAVA,在Linux上面运行;一方面,AWS对Linux有较多的监控措施,另一方面,假如出现问题,可以设置自动重启等服务。 老旧的WCF服务 目前WCF服务,主要提供windows桌面软件的 数据接口 ,应该有五六年的历史了。我进入公司后,WCF服务的代码,一直由我一个人来维护。存在很多 历史遗留问题 ,也有 不同版本 的共存。 如果java重写的话,其中的业务逻辑代码,难免会出现各种各样的bug,增加开发和测试的工作量。听说,要移植到linux服务上后,第一时间想到的就是 跨平台 的 .net core 。 .net core 经过了四年的发展,到目前的 3.1 LST版本,已经是 非常成熟 的跨平台解决方案了。 之后,我就在网上查找,有没有WCF的.net core 版本,查询到的信息总结如下: Core WCF不打算做WCF到.NET Core的100%兼容的移植; 对于新应用程序,WCF这种SOAP技术不建议使用; 对于老的应用程序,建议将这些保留在.NET Framework上; 如果您真的想将一个旧的应用程序迁移到.NET Core并且想继续使用WCF和WF, 社区的开源项目也是可以的

腾讯云 Serverless 保障《创造营》硬糖少女 C 位出道

巧了我就是萌 提交于 2020-08-18 05:37:33
15 位青春洋溢的女团候选成员,百万次全网观众投票,节目播出后迅速霸占热搜前十位..... 在这激动人心的决赛之夜,Tencent Serverless 团队下的云 API 网关产品作为幕后英雄,利用其高并发、高可用的技术特性,支撑了节目投票环节顺利开展,面对全网粉丝狂热打 call 投票,顺利保障小姐姐们 C 位出道! 不一般的投票 【投票】是一个很简单的功能,但是《创造营》的投票不一样。 《创造营》是直播节目,投票时间非常短。海量全网粉丝将在同一时间瞬时涌入,瞬间的大流量和高并发,对系统的高可用性提出了极高的要求。 《创造营》投票,将产生本届总冠军,是《创造营》决胜之夜的制胜环节,激动人心的时刻。投票系统的任何差池,都会对粉丝心理和节目效果造成重创。 在投票的关键时刻,为了保证女团小姐姐顺利出道,技术小哥哥采用了什么样的技术设计,保证了这种特殊场景下的投票功能高可用呢? Serverless Serverless 是一种云计算技术的新趋势,一方面它使开发者在构建和运行应用时无需管理服务器等基础设施,将构建应用的成本进一步降低,实现快速迭代、极速部署;同时,Serverless尤其适用于高并发场景,无需预估流量大小,而会根据流量情况自动的进行扩缩容,整个过程无需人工干预;值得一提的是,Serverless 还是按用量付费的模式,避免了无用的资源开销,大大降低了成本。

lvs+keepalived+nginx搭载高性能负载均衡

安稳与你 提交于 2020-08-18 05:33:59
1. 配置网络结构: 192.168.1.11和192.168.1.12是互为备份的LVS Director, 192.168.1.11默认为MASTER, 192.168.1.12为BACKUP 192.168.1.99是LVS Director的虚拟IP,当192.168.1.11正常工作时,它会通过VRRPv2协议向广播网段发送ARP数据包,声明192.168.1.99为其所有,当192.168.1.11宕机时,192.168.1.12会立即接管该工作,声明192.168.1.99的所有权并响应用户请求 192.168.1.13和192.168.1.14是 Real Server, 上面有监听在80端的Web 服务 2. Keepalived主机安装配置 1. 在192.168.1.11和192.168.1.12上安装keepalived, 安装完成后修改配置文件/etc/keepalived/keepalived.conf。 # yum install keepalived -y # vi /etc/keepalived/keepalived.conf 详细配置参数说明请参见官方文档: http://www.keepalived.org/doc/configuration_synopsis.html 2. 配置MASTER节点(192.168.1.11),配置文件内容如下

spring整合Quartz时,定时任务执行了2次

帅比萌擦擦* 提交于 2020-08-18 04:56:22
项目背景:spring+quartz+dubbo+… 最近在检查日志的时候,发现自己的定时任务执行了多次,而且是每个任务执行了多次,但是在本地环境的时候 是不会这样的,本地使用jetty启动的,服务器上使用tomcat启动的, 后来发现 在tomcat下面启动的时候,在它的配置文件中(conf/server.xml) <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <!-- SingleSignOn valve, share authentication between web applications Documentation at: /docs/config/valve.html --> <!-- <Valve className="org.apache.catalina.authenticator.SingleSignOn" /> --> <!-- Access log processes all example. Documentation at: /docs/config/valve.html Note: The pattern used is equivalent to using pattern="common" --> <Valve className=

万物皆可 Serverless 之使用云函数 SCF 快速部署验证码识别接口

試著忘記壹切 提交于 2020-08-18 04:55:15
验证码识别是搞爬虫实现自动化脚本避不开的一个问题。通常验证码识别程序要么部署在本地,要么部署在服务器端。如果部署在服务器端就需要自己去搭建配置网络环境并编写调用接口,这是一个极其繁琐耗时的过程。 本文来自 Serverless 社区用户「乂乂又又」供稿 但是现在我们通过腾讯云云函数 SCF,就可以快速将本地的验证码识别程序发布上线,极大地提高了开发效率。 效果展示 可以看到,识别效果还是蛮好的,甚至超过了肉眼识别率。 操作步骤 传统的验证码识别流程是 图像预处理(灰化,去噪,切割,二值化,去干扰线等) 验证码字符特征提取(SVM,CNN 等) 验证码识别 下面我就带大家一起来创建、编写并发布上线一个验证识别云函数 第一步:新建 python 云函数 参见系列文章 《万物皆可Serverless之使用 SCF+COS 快速开发全栈应用》 第二步:编写验证识别云函数 Life is short, show me the code. 这里我就以一个最简单的验证码识别程序为例,直接上代码 import io import os import time from PIL import Image as image import json #字符特征 chars = { '1': [1, 1, 1, 0, 1, ...], '2': [1, 0, 0, 1, 0, ...], '3': [0,

spring源码调试准备工作

若如初见. 提交于 2020-08-17 18:40:01
Spring源码下载 1、git clone--branchv5.1.3.RELEASE https://gitee.com/Z201/spring-framework.git 2、gradle 下载,gradle 要 JDK8 的版本 3、到下载的 spring 源码路径执行 gradle 命令, gradlew:spring-oxm:compileTestJava 4、用 idea 打开 spring 源码工程,在 idea 中安装插件 kotlin,重启 idea 5、把编译好的源码导入到工程中 最后我们需要在我们自己的项目中调试源码引入spring源码对应的依赖,并且将源码打成jar包: 双击对应工程的jar就可以断点调试了 来源: oschina 链接: https://my.oschina.net/u/3995125/blog/4310406