tasks

[LeetCode]621. 任务调度器(贪心)

≯℡__Kan透↙ 提交于 2019-12-01 22:36:23
题目 给定一个用字符数组表示的 CPU 需要执行的任务列表。其中包含使用大写的 A - Z 字母表示的26 种不同种类的任务。任务可以以任意顺序执行,并且每个任务都可以在 1 个单位时间内执行完。CPU 在任何一个单位时间内都可以执行一个任务,或者在待命状态。 然而,两个相同种类的任务之间必须有长度为 n 的冷却时间,因此至少有连续 n 个单位时间内 CPU 在执行不同的任务,或者在待命状态。 你需要计算完成所有任务所需要的最短时间。 示例 1: 输入: tasks = ["A","A","A","B","B","B"], n = 2 输出: 8 执行顺序: A -> B -> (待命) -> A -> B -> (待命) -> A -> B. 注: 任务的总个数为 [1, 10000]。 n 的取值范围为 [0, 100]。 来源:力扣(LeetCode) 链接: https://leetcode-cn.com/problems/task-scheduler 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 题解 1 只需找出出现次数最多的字符,假设其出现次数为maxOccurTimes,把它们间隔为n的放置,其余task(或空)补足间隔即可;易得字符数组长度为 (maxOccurTimes - 1) * (n + 1) + 1; (贪心的思想) 2

Ansible Roles角色

早过忘川 提交于 2019-12-01 07:46:15
Roles小技巧: 1.创建roles目录结构,手动或使用ansible-galaxy init test roles 2.编写roles的功能,也就是tasks。 nginx rsyncd memcached 3.最后playbook引用roles编写好的tasks mkdir /root/roles/nginx/{tasks,templates,handlers} ##tasks [root@manager ~]# cat /root/roles/nginx/tasks/main.yml - name: Install Nginx Server yum: name: nginx state: present - name: Configure Nginx Server template: src: nginx.conf.j2 dest: /etc/nginx/nginx.conf notify: Restart Nginx Server - name: Systemd Nginx Server systemd: name: nginx state: started enabled: yes ##template [root@manager roles]# cat /root/roles/nginx/templates/nginx.conf.j2 user www; worker

Ansible 流程控制

左心房为你撑大大i 提交于 2019-12-01 07:45:46
8.判断语句 1.centos和ubuntu系统都需要安装httpd, 判断系统. 2.安装软件仓库,只有web组的安装webtatic其他的主机全部跳过. 3.TASK任务, TASK1任务执行成功,才会执行TASK2 #根据不同的系统,安装不同的服务 - hosts: webservers tasks: - name: CentOS Installed Httpd Server yum: name: httpd state: present when: ( ansible_distribution == "CentOS" ) - name: Ubuntu Installed Httpd Server yum: name: httpd2 state: present when: ( ansible_distribution == "Ubuntu" ) [root@manager project1]# cat f16.yml - hosts: all tasks: - name: Add Nginx Yum Repository yum_repository: name: nginx description: Nginx Repository baseurl: http://nginx.org/packages/centos/7/$basearch/ when: ( ansible

NW.js桌面应用开发(一)

我怕爱的太早我们不能终老 提交于 2019-12-01 07:29:37
NWjs中文网地址: https://nwjs.org.cn/ NWjs英文网地址: https://nwjs.io/ 一些需要了解的历史与特性,其实就是 NW.js 和 Electron 的争议,看看就好,不必纠结,想用那个用那个喽,或者要你用那个就得用那个喽,然后开干 1、下载SDK版工具 从 淘宝NPM镜像 下载,速度飞快,我选择最新的 https://npm.taobao.org/mirrors/nwjs/v0.41.2/nwjs-sdk-v0.41.2-win-x64.zip 版本,对应 Chromium 77 + Node 12.9.1 然后就可以按照官网 快速入门 例子,就像构建一个Node项目一样从package.json起手,首先构建一个静态页面的应用。 2、准备好package.json和index.html两个文件 { "name": "helloworld", "main": "index.html" } 注意 :Windows系统的默认编码是GBK,而我们经常写代码用的是UTF-8(VS除外),这里index,html的编码格式就得改一改了,就像CMD黑窗口一样,UTF-8的内容在Windows上默认是无法正常显示的 <!DOCTYPE html> <html> <head> <title>Hello World-这是标题!</title> </head>

分布式任务队列Celery快速上手

六月ゝ 毕业季﹏ 提交于 2019-12-01 05:10:33
Celery介绍 celery(芹菜)是一个异步任务队列/基于分布式消息传递的作业队列。 它侧重于实时操作,但对调度支持也很好。 celery用于生产系统每天处理数以百万计的任务。 celery是用Python编写的,但该协议可以在任何语言实现。它也可以用其他语言通过webhooks实现。 目前已知有php/ruby/nodejs的实现 为什么用Celery? 异步 耗时久的事儿可以扔给 Worker 处理,处理完可以触发子任务提醒 天然的并发能力(多进程/协程)! 非常方便添加 Worker 来增强处理能力 Celery提供了Web方式的监控/报警,这样,我们就可以监控每个任务的情况了 出现错误可以自动处理/重试 角色介绍 Brokers : 提供队列服务,Celery支持的Brokers有: RabbitMQ( 推荐 ) Redis MongoDB Beanstalk CouchDB SQLAlchemy(MySQL/PostgreSQL/Sqlite/Oracle) Amazon SQS等 Worker : 真正干活的,实际运行任务的节点。 开始 Celery 的第一步 选择你的 Broker 在你正式开始使用 Celery 之前,你需要选择、安装并运行一个 broker。 Broker 是一种负责接收、发送任务消息(task messages)的服务 你可以从以下几种

Python 和 Flask 设计 RESTful API

梦想的初衷 提交于 2019-11-30 19:05:48
#!flask/bin/python from flask import Flask, jsonify from flask import make_response app = Flask(__name__) tasks = [ { 'id': 1, 'title': u'Buy groceries', 'description': u'Milk, Cheese, Pizza, Fruit, Tylenol', 'done': False }, { 'id': 2, 'title': u'Learn Python', 'description': u'Need to find a good Python tutorial on the web', 'done': False } ] @app.route('/todo/api/v1.0/tasks', methods=['GET']) def get_tasks(): return jsonify({'tasks': tasks}) @app.errorhandler(404) def not_found(error): return make_response(jsonify({'error': 'Not found'}), 404) if __name__ == '__main__': app.run(debug=True)

celery 使用 - 3

我只是一个虾纸丫 提交于 2019-11-30 15:13:05
# celery 使用 1.broker 2.基础案例 使用redis作为broker和brokend。 创建tasks.py # tasks.py di = 'redis://:****@localhost:6379/0' app = Celery('tasks', backend=di, broker=di) @app.task def add(x, y): return x + y 运行: celery -A tasks worker -l info -P eventlet 创建temp.py # temp.py from tasks import add rv = add.delay(4, 4) 2.1 运行结果: 运行tasks E:\python\code test>celery -A tasks worker -l info -P eventlet -------------- celery@*** v4.3.0 (rhubarb) ---- **** ----- --- * *** * -- Windows0 2019-09-21 22:08:04 -- * - **** --- - ** ---------- [config] - ** ---------- .> app: tasks:0x1aebfdcf98 - ** ---------- .>

Ansible的roles角色详解

雨燕双飞 提交于 2019-11-30 10:44:11
1. Roles目录结构 2. Roles基本使用 这个roles主要是将已知的文件结构预先是由roles定义好的,它会自动的加载这里面的文件内容,例如任务handlers,都会自动去加载,也就是roles对已知的进行分类分组,使我们很容易的去管理,roles提供一种层次化和结次化组织你的playbook,这也是我们去使用它的目的,它不像playbook是一个具体的使用,而roles它是一个组织的方式,这种方式也是通过ansible的一个最佳实践。 1. roles的目录结构 它在目录下有个site,yaml,这个是一个统一的入口,因为它会关联很多的文件,所以我们只需要对着这个统一的入口进行操作 另外就是角色或者功能模块进行部署,像下面的webservers.yaml和fooservers.yml site.yml 统一的入口,会关联很多的文件 webservers.yml 角色或者功能模块进行部署 fooservers.yml hosts 角色或者功能模块进行部署 roles/ 角色目录,下面又分为不同的模块 common/ 像common 和webservers,相当于两个模块,common用于存放一些公共资源的地方,例如可能会有很多的项目会用到共同的变量,或者有相同的依赖,那么都可以在common的这模块下去定义,这个模块也可以称为角色,这个角色下面还有很多的目录

springmvc 使用InternalResourceViewResolver解析URL文件

不问归期 提交于 2019-11-29 08:25:55
最常用的URL文件应该就是我们的jsp页面了,InternalResourceViewResolver解析器可以解析该资源,配置如下 <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/"></property> <property name="suffix" value=".jsp"></property> </bean> prefix和suffix属性可以指定资源页面的前缀和后缀,可以直接把资源位置定位到项目的/WEB-INF/下面。InternalResourceViewResolver默认是使用了InternalResourceView作为视图的实现类,如果你想使用JSTL标签的一些功能的话,例如使用这个,那就需要用JstlView来替换InternalResourceView了,具体的配置如下 <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/"></property>

VScode 插件推荐与C/C++配置

霸气de小男生 提交于 2019-11-28 22:57:40
以下是我经常用到的VScode插件。由于插件本身具有详细的配置和介绍,不对插件本身的安装配置进行说明,仅仅支出这些插件的主要功能。具体使用强烈推荐看一下安装插件后的说明,大多数的问题和设置都可以找到,不要因为是英文就直接上网搜索。 C++类 这两款插件可以使得C++的编写变得更加容易。具有强大的自动补全功能。有关C++的具体配置下文会有具体讲解。 美化 主题和图标我推荐使用以下两个插件。第一个Material Theme插件主要是改变背景颜色、代码高亮和字体。第二款图标插件可以使得文件结构更加清晰。中文配置必选Chinese插件。 git 我推荐使用gitlens。gitlens的功能异常强大,图示仅仅是其功能的冰山一角,其甚至可以显示出代码部分谁在什么时候做的更改。 tab功能拓展 tabout插件可以使得按一下tab键直接从括号或者引号中跳出,不再需要去按方向键或者end键。 cmake cmake功能使得CMakeLists.txt的书写变得容易,具有自动补全和高亮功能。 C/C++配置 无论是Linux还是Windows,用户配置都放在.vscode下。这里说明一下用户配置和全局配置。用户配置是针对某一个工程或者文件夹而特别做的。所有配置文件都放在该文件夹下的.vscode隐藏文件夹中。 如下图所示就是全局配置的入口。这里更改的所有配置会在任意文件夹下可见。 Windows