草庐IT

三方包

全部标签

乾坤大挪移,如何将同步阻塞(sync)三方库包转换为异步非阻塞(async)模式?Python3.10实现。

众所周知,异步并发编程可以帮助程序更好地处理阻塞操作,比如网络IO操作或文件IO操作,避免因等待这些操作完成而导致程序卡住的情况。云存储文件传输场景正好包含网络IO操作和文件IO操作,比如业内相对著名的七牛云存储,官方sdk的默认阻塞传输模式虽然差强人意,但未免有些循规蹈矩,不够锐意创新。在全球同性交友网站Github上找了一圈,也没有找到异步版本,那么本次我们来自己动手将同步阻塞版本改造为异步非阻塞版本,并上传至Python官方库。异步改造首先参见七牛云官方接口文档:https://developer.qiniu.com/kodo,新建qiniu_async.py文件:#@Author:Li

.NET 纯原生实现 Cron 定时任务执行,未依赖第三方组件 (Timer 优化版)

在上个月写过一篇 .NET纯原生实现Cron定时任务执行,未依赖第三方组件的文章,当时 CronSchedule的实现是使用了,每个服务都独立进入到一个while循环中,进行定期扫描是否到了执行时间来实现的,但是那个逻辑有些问题,经过各位朋友的测试,发现当多个任务的时候存在一定概率不按照计划执行的情况。感谢各位朋友的积极探讨,多交流一起进步。之前那个while循环的逻辑每循环一次Task.Delay1000毫秒,无限循环,多个任务的时候还会同时有多个循环任务,确实不够好。所以决定重构 CronSchedule的实现,采用全局使用一个Timer的形式,每隔1秒钟扫描一次任务队列看看是否有需要执行

.NET 纯原生实现 Cron 定时任务执行,未依赖第三方组件 (Timer 优化版)

在上个月写过一篇 .NET纯原生实现Cron定时任务执行,未依赖第三方组件的文章,当时 CronSchedule的实现是使用了,每个服务都独立进入到一个while循环中,进行定期扫描是否到了执行时间来实现的,但是那个逻辑有些问题,经过各位朋友的测试,发现当多个任务的时候存在一定概率不按照计划执行的情况。感谢各位朋友的积极探讨,多交流一起进步。之前那个while循环的逻辑每循环一次Task.Delay1000毫秒,无限循环,多个任务的时候还会同时有多个循环任务,确实不够好。所以决定重构 CronSchedule的实现,采用全局使用一个Timer的形式,每隔1秒钟扫描一次任务队列看看是否有需要执行

.NET 纯原生实现 Cron 定时任务执行,未依赖第三方组件

常用的定时任务组件有Quartz.Net和Hangfire两种,这两种是使用人数比较多的定时任务组件,个人以前也是使用的Hangfire,慢慢的发现自己想要的其实只是一个能够根据Cron表达式来定时执行函数的功能,Quartz.Net和Hangfire虽然都能实现这个目的,但是他们都只用来实现Cron表达式解析定时执行函数就显得太笨重了,所以想着以解析Cron表达式定期执行函数为目的,编写了下面的一套逻辑。首先为了解析Cron表达式,我们需要一个CronHelper,代码如下usingSystem.Globalization;usingSystem.Text;usingSystem.Text.

.NET 纯原生实现 Cron 定时任务执行,未依赖第三方组件

常用的定时任务组件有Quartz.Net和Hangfire两种,这两种是使用人数比较多的定时任务组件,个人以前也是使用的Hangfire,慢慢的发现自己想要的其实只是一个能够根据Cron表达式来定时执行函数的功能,Quartz.Net和Hangfire虽然都能实现这个目的,但是他们都只用来实现Cron表达式解析定时执行函数就显得太笨重了,所以想着以解析Cron表达式定期执行函数为目的,编写了下面的一套逻辑。首先为了解析Cron表达式,我们需要一个CronHelper,代码如下usingSystem.Globalization;usingSystem.Text;usingSystem.Text.

.Net大杀器之基于Newlife.Redis的可重复消费+共享订阅队列来替换第三方MQ

一、前言 消息队列(MessageQueue)是分布式系统必不可少的中间件,大部分消息队列产品(如RocketMQ/RabbitMQ/Kafka等)要求团队有比较强的技术实力,不适用于中小团队,并且对.NET技术的支持力度不够。而Redis实现的轻量级消息队列很简单,仅有Redis常规操作,几乎不需要开发团队掌握额外的知识! 写这篇文档的目的,是因为在最近开发过程中,需要用到多端订阅的功能,之前设计的时候用的是rockemq,最近又重新整理了一遍项目架构,把orm替换成了二次封装的shinysqlsugar,redis也替换成了shiny.redis,正好看到newlife.redis已经实现

.Net大杀器之基于Newlife.Redis的可重复消费+共享订阅队列来替换第三方MQ

一、前言 消息队列(MessageQueue)是分布式系统必不可少的中间件,大部分消息队列产品(如RocketMQ/RabbitMQ/Kafka等)要求团队有比较强的技术实力,不适用于中小团队,并且对.NET技术的支持力度不够。而Redis实现的轻量级消息队列很简单,仅有Redis常规操作,几乎不需要开发团队掌握额外的知识! 写这篇文档的目的,是因为在最近开发过程中,需要用到多端订阅的功能,之前设计的时候用的是rockemq,最近又重新整理了一遍项目架构,把orm替换成了二次封装的shinysqlsugar,redis也替换成了shiny.redis,正好看到newlife.redis已经实现

Android 接收微信、QQ其他应用打开,第三方分享

这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助在AndroidManifest.xml注册ACTION事件//注册接收分享//接收分享的文件类型//注册默认打开事件,微信、QQ的其他应用打开//接收打开的文件类型在用于接收分享的Activity里面加接收代码当APP进程在后台时,会调用Activity的onNewIntent方法当APP进程被杀死时,会调用onCreate方法所以在两个方法中都需要监听事件@OverrideprotectedvoidonCreate(@NullableBundlesavedInstanceState){super.onCreate(savedIns

Android 接收微信、QQ其他应用打开,第三方分享

这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助在AndroidManifest.xml注册ACTION事件//注册接收分享//接收分享的文件类型//注册默认打开事件,微信、QQ的其他应用打开//接收打开的文件类型在用于接收分享的Activity里面加接收代码当APP进程在后台时,会调用Activity的onNewIntent方法当APP进程被杀死时,会调用onCreate方法所以在两个方法中都需要监听事件@OverrideprotectedvoidonCreate(@NullableBundlesavedInstanceState){super.onCreate(savedIns

Windows批处理实现邮件远程控制电脑(第三方批处理)

最近网上看到了电子邮箱的新利用方法如题,下载了几个此类软件,发现好几个不是不好用,就是功能不全。上博客园搜了一下,那么可以看到有使用java和python实现的,这里我们用Windows的批处理实现。我们要实现的最基础的功能,自然是执行cmd命令,有了这个其他都好说。Windows批处理的优点:1.一个批处理文件,配合第三方批处理等,在几乎所有Windows电脑上,可以直接运行。2.代码编写容易,逻辑比较简单,基本上都是cmd命令。批处理的缺点:1.我们远程控制,邮件发送过来的也是命令,由于Windows命令解释的预处理机制,会把原批处理命令和发送的命令(变量)混在一起。此处会涉及到不是非常复