首页 文章 精选 留言 我的

精选列表

搜索[分布式调度],共10000篇文章
优秀的个人博客,低调大师

与线程同步以及线程调度相关的方法

wait():使一个线程处于等待(阻塞)状态,并且释放所持有的对象的锁; sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要处理InterruptedException异常; notify():唤醒一个处于等待状态的线程,当然在调用此方法的时候,并不能确切的唤醒某一个等待状态的线程,而是由JVM确定唤醒哪个线程,而且与优先级无关; notityAll():唤醒所有处于等待状态的线程,该方法并不是将对象的锁给所有线程,而是让它们竞争,只有获得锁的线程才能进入就绪状态; 补充:Java 5通过Lock接口提供了显式的锁机制(explicit lock),增强了灵活性以及对线程的协调。Lock接口中定义了加锁(lock())和解锁(unlock())的方法,同时还提供了newCondition()方法来产生用于线程之间通信的Condition对象;此外,Java 5还提供了信号量机制(semaphore),信号量可以用来限制对某个共享资源进行访问的线程的数量。在对资源进行访问之前,线程必须得到信号量的许可(调用Semaphore对象的acquire()方法);在完成对资源的访问后,线程必须向信号量归还许可(调用Semaphore对象的release()方法)。

优秀的个人博客,低调大师

推荐一款任务调度的开源方案

在平时的工作中,我们多多少少会有一些定时任务需要处理,有些是在每个服务器上单独部署,有些是在中控端部署,但是这样有一个缺点就是难以形成闭环,我们不知道我们的定时任务是否执行成功,如果需要做信息统计,这个工作量还是蛮大的。 简单来说,就是下面的痛点了: 需要在每台linux服务器的crontab里一一定义任务 任务的执行监控太不方便了 得登录到每台机器查看定时任务的运行结果,机器一多简直是一种灾难 对于多台机器协同处理一个任务很麻烦,如何保证多台机器上的任务按顺序依次执行? 当任务运行失败,要重新执行,还得重新定义下执行时间,让其重跑,重跑完成了还得改回正常时间 正在运行的任务要kill掉很麻烦,查看进程然后才能kill...... 而最近在梳理自动化的一些东西,所以开源的方案都会进入我的视线,我都会多多少少测试一下,看看怎么转换为自己需要的东西,顺便也找找曾经开发的感觉。有一个开源项目opencron引起了我的兴趣。 开源项目的地址是:https://github.com/wolfboys/opencron 整个开源项目的部署还是比较方便的,如果做过Java Web相关的开发,部署起来会很轻松。 说说我对这个项目的理解,开发语言主要是Java,它的架构是基于c/s的方式,在每个需要调用任务的客户端都需要部署一个客户端,然后在服务端来触发,整个工程的编译是使用maven实现,编译后会生成一个war包,拷贝到web容器中,比如tomcat中即可。 对我来说最大的优点是这个项目我能很快得到我希望看到的界面和功能。界面的效果上还是不错的,可以选择差不多10多个主题。 而从功能来说,个人认为中间的头像和日历还是不需要的,右边栏的统计很不错,通过这些概览能够很容易得到一个整体的数据。那些任务成功,失败都可以一目了然。 还有个不错的功能是对于任务的统计图,有折线图,有饼图。这个效果还是不错的。任务可以手动执行触发,也可以设置重跑次数,超时次数等等。 这个webshell的功能真是太炫了。在浏览器中能够开启这样一个ssh会话,我在几年前还曾经写过程序模拟,但是效果都不大好,在这里满足了我之前的一个小小的遗憾。 还有个问题就是如果要集成到自动化平台中,其实还是需要不小的工作量,因为自动化平台的技术语言目前是Python,考虑到团队的需求,尽可能减少体系的复杂度,opencron还是有不小的参考价值,在后期如何引入,我觉得可以依旧从试用中得到更多的经验。 我觉得我需要兼任几个角色,比如产品设计,系统架构,然后落地的过程中的开发技术和数据库相关的技术结合,想想挑战还是有的,不管怎么样就是做一件事情,把他做好,先提高团队的工作效率,把那些手工的配置和管理都能够对接到平台上,可以统一管控,如果从业务价值和技术价值的角度来衡量,其实目前来看技术价值有的,业务价值不高,但是如果能够落地,那么业务价值会远大于技术价值,技术工作就是如此,没开始的时候能够天马行空,但是要落到实处,需要付出很多的努力。 之前分享过一起 OpsManage的想法,有很多朋友已经在部署试用了,很多朋友问我一些部署的细节,或者说这个方案是否可以满足工作中的绝大多数需求,我想说的是,应该不会,我认为它最大的优点在于可以减少技术从0开始的复杂度,让你可以快速迭代开发。 对于自动化的开发和问题,大家可以一起交流,入群有验证,标注 公司-职位,一个星期内没有有效发言(发表情不算有效发言),会被请出,先想好再入群。如果你是有经验的老司机,希望能够加入提供技术建议,一起交流,如果你也是在探索的朋友,那就立一个计划吧。我拍个脑袋,一个月也达到什么程度,然后来按照这个时间反推进度。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册