Hey

ScheduleMaster新特性之延时任务初体验

﹥>﹥吖頭↗ 提交于 2020-08-13 18:32:12
ScheduleMaster在上个月底更新到了2.0版本,在功能和代码以及文档上都往前跨了很大一步,详细信息可以参考这篇文章: https://www.cnblogs.com/hohoa/p/12772945.html 对ScheduleMaster还不熟悉的朋友可以先移步作者的系列文章: https://www.cnblogs.com/hohoa/category/1628282.html 这次的更新点主要包含: 开发了延时任务功能。 抽象出分布式锁服务并默认数据库实现。 补充了单元测试。 补充了几篇文档。 修复了已知的bug。 其中的重头戏自然是延时任务功能,所谓的延时任务就是在指定时刻执行指定逻辑,这在平时需求开发中是非常常见的,作为一款功能齐全的调度系统这当然也是必备的功能。 关于延时任务的实现原理我早期写过一篇文章 《采用简易的环形延时队列处理秒级定时任务的解决方案》 来介绍,ScheduleMaster也是在这个基础上改进而来。 当然了,其他的实现方式也还有很多,主流的实现方案可以参考下面这篇文章,整理的比较齐全: https://www.cnblogs.com/vipstone/p/12696465.html 我采用的就是比较经典的时间轮算法,原理就不再重复介绍了可以移步到我前面的文章,下面看看实现效果。 实现了什么效果 我们先通过一段测试代码看看延时队列的运行情况:

003 C# 巧做学习强国题库查询工具

风流意气都作罢 提交于 2020-08-13 09:51:51
Hey,How are you doing? 我是职场编码,最近你还好吗? 哈哈,我这段时间一直在忙着学习强国。 你知道吗?学习强国里有个栏目叫挑战答题。 题库随机抽题,每天答对10道,才算过关。 这不,我这寻思做一个题库查询工具。 一是为了方便自己学习提升,二是提升自己的效率减少不必要时间损耗。 这个工具,我还真就做出来了。 这期,就跟我一起看看,这个工具如何制作。 准备数据库 因为C#本身不具备存储功能,因此我们需要选择一个数据库软件。 这里,我推荐Access数据库。 理由有三点: 一是办公软件界面化操作,实操即所得。 二是安装办公软件大礼包自带Access,不必重新下载其他数据库软件。 三是与Excel相比,它承载数据量大,操作速度快。 当然,它也有缺点,比如数据量大(>100mb)会经常崩溃。 不过不必担心,把整理好的题库导入Access里。 看这里,1477条数据记录才2.29mb,我们可以放心使用。 界面设计 输入显示 输入框由两部分组成: 一是Textbox负责文字输入显示部分。 二是由于Textbox无法设置垂直居中,因此在它外面套了一个panel框架充当白底。 具体设置请参照上图。 查询按钮 这个控件需要修改的地方很少,你可以简单了解下。 数据显示 数据显示则是使用了dataGridView控件。 不得不承认,这个控件特别像Access数据库界面。 接着

Python中"一等公民"——函数

ⅰ亾dé卋堺 提交于 2020-08-12 03:16:30
Python中"一等公民"——函数 Python的函数是“一等公民”。 你可以将它们分配给变量,将它们存储在数据结构中,将它们作为参数传递给其他函数,甚至将它们作为其他函数的值返回。 直观地探究这些概念将使理解Lambda和装饰器等Python的高级功能变得更加容易。 它还使您走上了函数式编程技术的道路。 在本教程中,我将指导您完成许多示例,以帮助您发展这种直观的理解。 这些示例将彼此叠加,因此您可能需要按顺序阅读它们,甚至在继续学习时都可以在Python解释器会话中尝试其中的一些示例。 绕开我们将在此处讨论的概念的时间可能比预期要长一些。 不用担心,那是完全正常的。 我去过那儿。 您可能会感觉好像是在将头撞在墙上,然后当准备就绪时,事物突然“咔嗒”一声落入适当的位置。 在整个教程中,我将使用此 yell 函数进行演示。 这是一个简单的玩具示例,具有易于识别的输出: def yell ( text ): return text . upper () + '!' ​ >>> yell ( 'hello' ) 'HELLO!' 函数就是对象 Python程序中的所有数据都由对象或对象之间的关系表示。 诸如字符串,列表,模块和函数之类的东西都是对象。 Python中的函数没有什么特别的。 因为yell函数是Python中的一个对象,所以您可以将其分配给另一个变量,就像其他任何对象一样:

PAT 1037 Magic Coupon (25分) 贪心+排序+负负/正正得正

孤街浪徒 提交于 2020-08-11 10:40:59
题目 The magic shop in Mars is offering some magic coupons. Each coupon has an integer N printed on it, meaning that when you use this coupon with a product, you may get N times the value of that product back! What is more, the shop also offers some bonus product for free. However, if you apply a coupon with a positive N to this bonus product, you will have to pay the shop N times the value of the bonus product... but hey, magically, they have some coupons with negative N's! For example, given a set of coupons { 1 2 4 −1 }, and a set of product values { 7 6 −2 −3 } (in Mars dollars M$) where a

html使用常用字体图标

拥有回忆 提交于 2020-08-09 16:00:59
< h3 > < span aria-hidden = "true" data-icon = "abcdefg" ></ span > < span class="deleteIcon"> </span> Stats </ h3 > [data-icon]:before { font-family: icons; /* BYO icon font, mapped smartly */ content: attr(data-icon); speak: none; /* Not to be trusted, but hey. */ } .deleteIcon:before { font-family: icons; content: "d"; speak: none; } .gIcon:before { font-family: icons; content: "h"; speak: none; } 来源: oschina 链接: https://my.oschina.net/u/4038989/blog/4293988

014 Ruby PowerPoint写入Word

前提是你 提交于 2020-08-09 06:07:00
Hey,How are you doing? 到6月份,又要写半年总结了, 很多时候,我们一般都是在Word里写总结, 但有时,我们需要汇总其他人在PPT汇报时嵌在PPT里的总结。 这期,一起来看看,如何把内嵌在PPT里的总结写入Word。 001 需求分析 先准备一份含有内嵌文字的PPT,接着准备一个空白文档。 002 思路解析 第一步,初始化。 我们生成了Word应用、PPT应用。这是一个大前提,非常重要,同时,对自增量s,幻灯片总页数进行赋值。 第二步,批量写入Word。 通过双嵌套循环,循环读取PPT中每一页的Shape,利用slides(i).shapes(j).textframe.textrange.text将其中的文字部分写入Word段落对象。 当然,你需要先通过Wdc.paragraphs.add,创建待写入的段落对象。 你要明白,我们利用Pst.slides.count得到总页数,但无法通过Pst.slides.shapes.count得到文本框总数量。 我们退而求其次,在最外层(1..m).each{|i|}循环里,动态获取文本框数量即可。 第三步,收尾。 查看生成的文件是否存在问题,没问题就保存关闭即可。 003 代码展示 require "win32ole"Pth=File.dirname(__FILE__)Wap=WIN32OLE::new("word

Spring Boot 2.3 分层jar包、优雅停机、完美支持 Docker\k8s,一起尝鲜儿吧

让人想犯罪 __ 提交于 2020-08-08 12:23:36
我是风筝,公众号「古时的风筝」,一个兼具深度与广度的程序员鼓励师,一个本打算写诗却写起了代码的田园码农! 文章会收录在 JavaNewBee 中,更有 Java 后端知识图谱,从小白到大牛要走的路都在里面。 Spring Boot 2.3 已经发布一个月了,这两天才想起来尝一尝鲜儿。除了常规的升级外,很大部分的升级是针对 Docker 的,让你不得不相信,Docker 容器化微服务已然大势所趋。还没有用过的同学,再不下手就晚了。 此次升级主要包括如下几个方面,接下来就跟着我一起来尝一尝吧。 准备工作 为了说明 Spring Boot 2.3 的新特性,必须创建一个项目,以便试验。 创建一个项目并启动 1、创建一个 Spring Boot 项目,可以到 https://start.spring.io/ 上创建,也可以使用 IDEA 自带的功能创建。选择版本 2.3.1,JDK 还是选择亲爱的 Java 8,引入 Web 和 Actuator 两个依赖包。 有一点要注意一下,在我写本文的时候,Spring Boot 2.3.1 还不能从中央仓库下载,需要添加 Spring Boot 官方的里程碑仓库。 <repositories> <repository> <id>spring-milestone</id> <name>Spring Milestone Repository</name

Mysql 常用函数(15)- upper 函数

旧城冷巷雨未停 提交于 2020-08-06 21:21:20
Mysql常用函数的汇总,可看下面系列文章 https://www.cnblogs.com/poloyy/category/1765164.html upper 的作用 将所有字符串更改为 大写 ,然后返回 upper 的语法格式 UPPER ( str ) 小栗子 SELECT UPPER ( ' Hey ' ); # HEY SELECT UPPER ( ' hello world ' ); # HELLO WORLD SELECT UPPER ( NULL ); # NULL 来源: oschina 链接: https://my.oschina.net/u/4353238/blog/4280513

开箱即用,Knative 给您极致的容器 Serverless 体验

泪湿孤枕 提交于 2020-07-29 04:39:13
作者 | 冬岛 阿里巴巴技术专家 导读 :托管 Knative 开箱即用,您不需要为这些常驻实例付出任何成本。结合 SLB 云产品提供 Gateway 的能力以及基于突发性能型实例的保留规格功能,极大的节省您的 IaaS 开支,您支付的每一分钱都没有浪费。 <关注阿里巴巴云原生公众号,回复 报告 即可下载完整调查报告> CNCF 发布的年度调查报告显示 2019 年 Serverless 技术进一步获得了更大的认可。其中 41% 的受访者表示已经在使用 Serverless,另外 20% 的受访者表示计划在未来 12-18 个月内会采用 Serverless 技术。而在众多开源的 Serverless 项目中 Knative 是最受欢迎的一个。如下图所示, Knative 占据了 34% 的份额,遥遥领先于第二名 OpenFaaS,Knative 是自己搭建 Serverless 平台的首选。 Knative 之所以这么受欢迎和容器的生态不无关系。和 FaaS 模式不同的是 Knative 不要求用户对应用做非常大的改造,只要用户的应用完成了容器化就能部署在 Knative 中。并且 Knative 在 Kubernetes 之上提供了更聚焦的应用模型,让用户无需为应用的升级、流量灰度花费精力,这一切都是自动完成的。 云主机的发展历程 在云计算出现之前

有什么方法可以在线声明数组吗?

一个人想着一个人 提交于 2020-07-28 17:31:26
问题: Let's say I have a method m() that takes an array of Strings as an argument. 假设我有一个方法m(),该方法将字符串数组作为参数。 Is there a way I can just declare this array in-line when I make the call? 有什么方法可以在我打电话时直接声明该数组? ie Instead of: 即代替: String[] strs = {"blah", "hey", "yo"}; m(strs); Can I just replace this with one line, and avoid declaring a named variable that I'm never going to use? 我可以只用一行替换它,而避免声明一个我永远不会使用的命名变量吗? 解决方案: 参考一: https://stackoom.com/question/4qD2/有什么方法可以在线声明数组吗 参考二: https://oldbug.net/q/4qD2/Any-way-to-declare-an-array-in-line 来源: oschina 链接: https://my.oschina.net/u/4438370/blog/4278967