Ubuntu 18.04使用Systemd开机自启emqx:报错failed to start within 15 seconds,WAIT_FOR_ERLANG
之前也有使用Systemd来开机自启emqx的情况,当时没有成功就没有进行尝试:http://04007.cn/article/1105.html。这次是在Ubuntu下进行mqtt部署,部署之后也需要加入开机自启。一开始安装EMQX,failedtostartwithin15seconds,WAIT_FOR_ERLANG(之前一篇文章中也出现过)根据提前执行了WAIT_FOR_ERLANG值的修改,还是失败。vim/etc/environmentexporeWAIT_FOR_ERLANG=60source/etc/environment/bin/emqxstart 后来发现是下载的软件版本与系统不符合,原来使用的centos,...[>>…]
修改.gitignore但是git status仍然显示,.gitignore不生效的问题
使用Git做代码管理,在使用的时候发现不管怎么修改.gitignore文件,比如针对__pycache__文件夹,为了让git忽略所有目录里的__pycache__和.pyc文件, 在gitignore中加入规则:**/__pycache__、__pycache__、__pycache__/等,但是在gitstatus的时候依然发现还有这些目录下的这些文件。也有些朋友推荐在.git/info/exclude文件中添加__pycache__/。但我在本地尝试了就是未成功。问题出在哪? 原来.gitignore中已经标明忽略的文件目录及文件和版本...[>>…]
Gunicorn日志:httptools.parser.errors.HttpParserInvalidMethodError: invalid HTTP method
使用Gunicorn和FastAPI搭建的服务端框架程序看到报错:self.parser.feed_data(data)File"httptools/parser/parser.pyx",line193,inhttptools.parser.parser.HttpParser.feed_datahttptools.parser.errors.HttpParserInvalidMethodError:invalidHTTPmethod 奇怪为什么会有这样的错误,因为我尝试过post/get混用及URL错误各种请求尝试都未出现这样的错误,这个报错是在什么条件下产生的呢?于是我使用ApiPost来测试请求,同时也发现ApiPost可以选择的方法很多,ApiPost...[>>…]
jsonable_encoder方法有点作用但还是有些缺陷
在使用fastAPI进行开发的时候,最烦的就是数据库里的时间字段,一般我们会增加create_time和update_time两个时间字段,而这两个字段都是timestamp类型,默认值CURRENT_TIMESTAMP。而这两种类型的字段在使用Pymysql读取数据库内容之后如果直接使用json输出会报错:TypeError:ObjectoftypedatetimeisnotJSONserializable,需要对每个这种类型的字段进行如下的另外处理。record["create_time"]=record["create_time"].strftime("%Y-%m-%d%H:%M:%S") 之后发现了这个jsonab...[>>…]
Python中使用requests发送application/json格式报文数据需注意事项
在Python项目对接开发中,通常可能会用到使用requests进行post报文数据,双方在对接的同时还会对发送的数据进行签名计算,因此传输的数据需要对应起来。Python中使用requests发送报文数据需注意发送的数据类型是application/json还是application/x-www-form-urlencoded数据。 python使用requests进行请求时有data和json两个参数,即可以用json也可以用data。但是是有区别的。建议如果对方是使用application/json,则使用json参数发送json数据。如果对方是application...[>>…]
FastAPI项目报错:requirements.InvalidRequirement: Parse error at "XXX": Expected stringEnd
之前一直运行正常的使用FastAPI搭建的python项目,今天突然运行不起来了,报错:pkg_resources.extern.packaging.requirements.InvalidRequirement:Parseerrorat"'ler'":ExpectedstringEnd。根据报错的提示找到文件位置和对应的文件代码如下: File"c:python386libsite-packagespkg_resources_vendorpackagingrequirements.py",line95,in__init__ classRequirement(object): def__init__(self,requirement_string): try: req=REQUIREMENT.parseString(requirement_string) exceptParseExcep...[>>…]
python中的日志模板logoru及常用参数配置解析
Python中有一个内置的日志标准库——logging,但开发中涉及到日志记录时,基本都不会采用它,因为其在配置上较为繁琐。同时在多线程或多进程的场景下,若不进行特殊处理还会导致日志记录异常。其替代品就是一个优雅、简洁的日志记录第三方库——loguru,导入封装的logger类,即可直接进行调用和日志处理,非常方便实用。 #安装logoru模块 pip3installloguru #引入和调用logoru fromloguruimportlogger logger.debug('Thisisdebuginformation') logger.info('Thisisinfoinformation') logger....[>>…]
打开IE浏览器后自动跳转到了Edge浏览器
公司的一个应用每天必须访问,今天在使用的时候突然发现启动后开始是打开了IE浏览器,但是打开之后迅速跳转打开Edge浏览器,并同时把IE关了,非常快都来不及在IE浏览器中点出Internet选项窗口。之前一切正常,也没有进行过什么浏览器方面的操作,不知道是中了什么邪门。 怎么解决,有说到Edge浏览器的设置项->默认浏览器里去点击“让InternetExplorer在MicrosoftEdge中打开网站”后面的下拉菜单中选择“从不”。但我这里发现根本没有这个按钮(版本110.0.1587.50(...[>>…]
关于标准化JWT(JSON Web Token)和 OIDC经典授权模式
1.关于标准化JWT(JSONWebToken): JSONWebToken(JWT)是一个开放标准(RFC7519),它定义了一种紧凑且自包含的方式,用于在各方之间安全地传输信息作为JSON对象。此信息可以验证和信任,因为它是数字签名的。JWT可以使用密钥(使用HMAC算法)或使用RSA或ECDSA的公钥/私钥对进行签名。JWT格式的官方网站:https://jwt.io/可以对JWT格式进行测试和校验。 JWT的结构是由头部(header)、载荷(payload)、签证(signature)三段信息文本连接一起就构成了JWT字符串:JWT的...[>>…]
SSO的实现协议及OIDC协议的实现流程
提供SSO的标准和协议有很多,其中一些著名的有:安全访问标记语言(SAML)、开放授权(OAuth)、开放ID连接(OIDC)、Web服务联合(WS-Federation)、CAS(CentralAuthenticationService)、Kerberos等。 SAML是一种基于XML的标准,用于在IdP和服务提供商之间交换身份验证和授权数据,以验证用户的身份和权限,然后授予或拒绝他们对服务的访问权限。OAuth是比SAML更新的标准,由Google和Twitter于2006年开始联合开发。它的开发部分是为了弥补SAML在移动平台上的不足,并且基...[>>…]