分布式任务系统cronsun
Technology 分布式任务系统 cronsun 苏创绩 @Copyright Sunteng Technology 目录 01 任务系统 02 分布式任务系统 03 cronsun 04 心得体会 @Copyright Sunteng Technology Part One 01 任务系统 @Copyright Sunteng Technology 任务 1. 什么时间 什么时间 2. 什么地点 3. 做什么事 @Copyright Sunteng Technology 一个简单的任务 0 8 * * * echo "Hello Gophers!" @Copyright Sunteng Technology cron crond crontab cmd1 cmd2 cmd3 ... @Copyright @Copyright Sunteng Technology 早期的 cron V7,1979 1. 在Version 7 Unix里是一个系统服务 2. 只用 root 运行任务 3. 算法简单直接 @Copyright Sunteng Technology 早期的 cron 运行逻辑 1. 读 /usr/lib/crontab 文件 2. 如果有命令要在当前时间执行,就用0 码力 | 48 页 | 1.52 MB | 1 年前3通过 Electron 托盘(tray)实现后台执⾏⻓任务
title: Electron 应⽤处理⻓任务 date: 2020-11-26 tags: electron, node description: 通过 Electron 托盘(tray)实现后台执⾏⻓任务。 Electron 应⽤在执⾏⼀些⻓时间任务(⽐如上传、下载),我们想关闭界⾯后任务依旧执⾏。再次打开界⾯,依旧可以看到正在执⾏的任务以及任 务进度。托盘可以帮我们实现这个功能。 关闭应⽤前唤醒对话框⼆次确认 关闭应⽤时,触发对话框,可⽀持 3 种场景: 点击「取消」取消关闭操作; 点击「退出」,「后台运⾏」选中时,界⾯关闭,托盘不关闭,任务继续执⾏; 点击「退出」,「后台运⾏」不选中,界⾯、托盘关闭,直接退出,任务终⽌。 mainWindow.on('close', (e) => { dialog.showMessageBox({ title: '退出' createFromPath(path.resolve(__dirname, 'icon.png')), message: `确定要退出吗?`, detail: '选择后台运⾏,正在运⾏的任务将在系统托盘中继续运⾏。', checkboxLabel: '后台运⾏', checkboxChecked: true, buttons: btns,0 码力 | 6 页 | 1.19 MB | 1 年前3基于amqp实现的golang消息队列MaxQ
基于amqp实现的golang消息队列MaxQ http://192.168.10.11:3999/maxq.slide#1 1/22 基于amqp实现的golang消息队列 MaxQ 2017-07-01 张培培 饿了么-基础框架组 7/1/2017 基于amqp实现的golang消息队列MaxQ http://192.168.10.11:3999/maxq.slide#1 2/22 内容 1. 队列 2 IPC消息队列 3. AMQP协议 4. MaxQ架构模型 5. MaxQ相关特性 6. 使用场景和案例 7/1/2017 基于amqp实现的golang消息队列MaxQ http://192.168.10.11:3999/maxq.slide#1 3/22 1. 队列 跟消息队列相比,有哪些共性? 7/1/2017 基于amqp实现的golang消息队列MaxQ http://192 生产消费关系 Pull/Push 7/1/2017 基于amqp实现的golang消息队列MaxQ http://192.168.10.11:3999/maxq.slide#1 5/22 2. IPC消息队列 跟消息队列相比,有哪些共性? 7/1/2017 基于amqp实现的golang消息队列MaxQ http://192.168.10.11:3999/maxq.slide#1 6/220 码力 | 22 页 | 1.45 MB | 1 年前3MoonBit月兔编程语言 现代编程思想 第八课 队列:可变数据实现
现代编程思想 队列:可变数据结构实现 Hongbo Zhang 1 队列 我们曾经介绍过队列这个数据结构 先进先出 利⽤两个堆栈进⾏实现 我们利⽤可变数据结构进⾏实现 基于数组的循环队列 单向链表 2 队列 我们实现以下函数(以整数队列为例) 1. struct Queue { .. } 2. 3. fn make() -> Queue // 创建空列表 4. fn push(self: self ,为了⽅便起⻅,我们将本身作为返回值传回 1. make().push(1).push(2).push(3).pop().pop().length() // 1 3 循环队列 我们可以利⽤⼀个数组来代表队列 数组是⼀个连续的存储空间,每⼀个字段均可被修改 数组被分配后⻓度不变 1. let a: Array[Int] = Array::make(5, 0) 2. a[0] = 1 移⼀位 如果超出数组⻓度,则绕回开头 4 循环队列 0 0 0 0 0 Start End push(1) 0 0 0 0 Start End make() 1 push(2) 0 0 0 Start End 1 2 pop() 0 0 0 Start End 0 2 0 1 2 3 5 循环队列 0 0 0 0 Start End push(6)0 码力 | 19 页 | 314.79 KB | 1 年前3Laravel 5.6 中文文档
中文学习资源:http://laravelacademy.org 1 一、序言 新版特性 Laravel 5.6 在 Laravel 5.5 的基础上继续进行优化,包括日志系统、单机任务调度、模型序列化优化、动态频率限制、广播频道类、API 资源控制器 生成、Eloquent 日期格式化优化、Blade 组件别名、Argon2 密码哈希支持、引入 Collision 扩展包等等等等。此外,所有的前端脚手架代码都已升 查看完整日志文档。 单机任务调度 注:要使用这个新特性,必须使用 memcached 或 redis 缓存驱动作为应用默认缓存驱动。此外,所有服务器必须和同一个中心缓存服务器进行通 信。 如果你的应用运行在多个服务器上,现在可以限定只在一台机器上运行调度任务。例如,假设你有一个在每周五晚上生成新报告的调度任务,如果任 务调度器运行在三个服务器上,这个调度任务就会在三台机器上运行并生成同样的报告三次,这样很不优雅,甚至很糟糕! 的报告三次,这样很不优雅,甚至很糟糕! 要指定任务只在一台机器上运行,可以在定义调度任务时使用 onOneServer 方法,第一台获取到任务的机器会给这个任务上一把原子级别的锁来阻 止其他服务器同时运行同一个任务: $schedule->command('report:generate') ->fridays() ->at('17:00')0 码力 | 377 页 | 14.56 MB | 1 年前3Laravel 6.0 中文文档
提供了对 Laravel Vapor 的兼容,这是一个针对 Laravel 应用的自动扩容无服务器部署平台。Vapor 对在 AWS Lambda 上 管理 Laravel 应用以及与 SQS 队列、数据库、Redis 集群、网络、 CloudFront CDN 进行交互的复杂性进行了抽象。 通过 Ignition 优化异常 本文档由学院君提供 学院君致力于提供优质 Laravel 中 Gate::authorize 方法时,这些自定义的消息会被自动返回给前 端。 任务中间件 任务中间件允许你封装自定义的队列任务异常业务逻辑,避免在任务 自身处理中混入对应样板代码。例如,在之前的 Laravel 版本中, 你可能需要在频率限制回调中封装某个任务的 handle 方法处理逻 辑: /** * 执行任务 本文档由学院君提供 学院君致力于提供优质 Laravel 中文学习资源:https://xueyuanjun (5)->then(function () { info('Lock obtained...'); // 处理任务... }, function () { // 无法获取到锁... return $this->release(5); }); } 而在 Laravel 6.0 中,该业务逻辑可以被提取到任务中间件中,从而 将你的任务 handle 方法从频率限制中解放出来:0 码力 | 1442 页 | 14.66 MB | 1 年前3Laravel 5.1 中文文档
oo.php。 本文档由 Laravel 学院(LaravelAcademy.org)提供 7 Amazon Web Services SDK 如果你正在使用 AWS SQS 队列驱动或者 AWS SES 电子邮件驱动,需要升级 AWS PHP SDK 到 3.0 版本。 如果你正在使用 Amazon S3 文件系统驱动,需要通过 Composer 升级相应的文件系统包: Illuminate\Contracts\Queue\ShouldBeQueued 被废弃,使 用 Illuminate\Contracts\Queue\ShouldQueue Iron.io “推入队列” 被废弃, 使用 Iron.io 队列和队列监听器. Illuminate\Foundation\Bus\DispatchesCommands trait 被废弃并被重命名为 Illuminate\Found 1 维护模式响应模板 默认的维护模式响应模板位于 resources/views/errors/503.blade.php 3.2 维护模式 & 队列 当你的站点处于维护模式中时,所有的队列任务都不会执行;当应用退出维护模式这些任务 才会被继续正常处理。 Laravel Homestead 1、简介 Laravel 致力于将整个 PHP 开发体验变得让人愉悦,包括本地开发环境。0 码力 | 307 页 | 3.46 MB | 1 年前3Laravel 5.2 中文文档
类现在被移动 到 Illuminate\Support\Composer,如果你没有在代码中使用该类那么这一改变对程序没 有影响。 命令和处理器 自处理命令 在创建任务/命令时你不再需要实现 SelfHandling 契约,所有任务现在默认都是自处理 的,因此你可以在自己的类中移除该接口。 独立的命令&处理器 Laravel 5.2 命令现在只支持自处理命令,不再支持独立的命令和处理器。 的标识符试图从数据库获取一个已存在的模型实例。 IronMQ IronMQ 队列驱动被移动到自己的扩展包中,不再被框架核心支持: http://github.com/LaravelCollective/iron-queue 任务/队列 php artisan make:job 命令现在默认会创建一个队列任务类,如果你想要创建一个同步任 务(非队列),在使用该命令时加上 --sync 选项。 邮件 邮件配置中移除了 php artisan up 维护模式响应模板 默认的维护模式响应模板是 resources/views/errors/503.blade.php 维护模式 & 队列 当你的站点处于维护模式中时,所有的队列任务都不会执行;当应用退出维护模式这些任 务才会被继续正常处理。 本文档由 Laravel 学院(LaravelAcademy.org)提供 Laravel 学院致力于提供优质0 码力 | 377 页 | 4.56 MB | 1 年前3Laravel 5.3 中文文档
......................................................................................... 360 9.7 队列 .................................................................................................. ........................................................................................ 528 12.2 任务调度 ................................................................................................ 当然,你还可以标记可邮寄对象为“队列化”,这样这封邮件就会在后台通过队列任务发送: class WelcomeMessage extends Mailable implements ShouldQueue { // } 更多可邮寄对象细节请查看其对应文档。 存储上传文件 注:Laracasts 上有关于该特性的免费视频教程。 在 web 应用中,最常见的任务之一就是保存用0 码力 | 691 页 | 9.37 MB | 1 年前3消息中间件RocketMQ原理解析 - 斩秋
topic 下的所有队列的方式来实现发送方的负载均衡 1) Topic 下的所有队列如何理解: 比如 broker1, broker2, borker3 三台 broker 机器都配置了 Topic_A Broker1 的队列为 queue0 , queue1 Broker2 的队列为 queue0, queue2, queue3, Broker3 的队列为 queue0 当然一般情况下的 broker 启动的时候注册到 namesrv 的 Topic_A 队列为共 6 个分别为: broker1_queue0, broker1_queue1, broker2_queue0, broker2_queue1, broker2_queue2, broker3_queue0, 2) Producer 如何实现轮询队列: Producer 从 namesrv 获取的到 Topic_A messageQueueList //Topic_A 的所有的队列 --AtomicInteger sendWhichQueue //自增整型 方法 selectOneMessageQueue 方法用来选择一个发送队列 (++sendWitchQueue) % messageQueueList.size 为队列集合的下标 每次获取 queue 都会通过0 码力 | 57 页 | 2.39 MB | 1 年前3
共 934 条
- 1
- 2
- 3
- 4
- 5
- 6
- 94