1
wwwap 2015-01-09 13:18:11 +08:00 2
supervisor
|
2
9hills 2015-01-09 13:24:26 +08:00 1
crontab is bad.
常驻脚本,用supervisor管理。监控用其他的监控系统,把常驻脚本当成service来处理 定时脚本,不要用crontab 如果你只有个别机器,可以看看 http://dshearer.github.io/jobber/ 大规模crontab,可以参考: http://airbnb.github.io/chronos/ 不过这个基于mesos,简直杀鸡用牛刀 |
5
loryyang 2015-01-09 15:09:02 +08:00 1
简单的话,用ct没任何问题,如果发现ct不够用了,再考虑升级,可以考虑其他的调度系统,或者自己开发。supervisor本质是保证程序的运行,不是用来执行调度。ct+supervisor可以解决许多问题。
监控是个复杂的事情,一般两个方向:1. 监控日志,2. 监控数据。首先你程序得好好打日志,你才有办法监控,有了日志,我觉得监控不是什么很大的问题。 我觉得ct问题不大,简单易行。不过就是不直观,可以配置的也不多。顺带遇到过几次比较奇怪的故障。第一次是ct控制一分钟跑一次,但是莫名其妙的在一分钟里面调用了两次程序,把程序搞挂了。第二次,ct的端口(是的,ct有一个端口)被别的程序占了,然后自己默默地停了。。。 |
6
clino 2015-01-09 15:14:26 +08:00 1
我觉得可以用 buildbot/jenkins 这种来管理定时任务,这样比用crontab好的是可以在web界面看结果和状态以及有邮件提醒之类的
当然jenkins会占用比较多资源,buildbot占用得比较少 |
7
9hills 2015-01-09 15:27:04 +08:00 4
@pheyx 呵呵,你写过几个定时任务在几台机器上跑过?常年10w+机器定时执行任务的路过,用crontab?
10w机器crontab,我就问你一句话,错误处理怎么搞,别告诉我说发邮件,你也不怕邮箱爆掉? Cron分为单机Cron和分布式Cron,每个都是一门学问。就以单机Cron来说,Crontab最少有以下弱点 1. 无可靠的报警机制,只能靠发邮件,我想发短信怎么搞?我想连续失败3次再报警怎么搞?我想首次失败发邮件,连续10次失败发短信怎么搞?我想最大连续报警次数为1怎么搞(比如每分钟执行,假如半夜突然有个问题导致失败,难道连发N封?)我想白天发邮件,晚上发短信怎么搞?我想晚上不发报警怎么搞? 2. 缺乏超时控制。我想控制cron为单实例怎么搞?(默认的cron是到点启动一个,不管前一个是否执行完成,如果卡住了,呵呵),我想加个超时报警怎么搞,我想加个最大超时时间到时强制kill怎么搞? 3. 缺乏执行日志。我想知道过去X天的执行情况,怎么看?我想看某次任务的执行日志,怎么看? 4. 需要第三方工具来实现自动化。这个就不提了。 至于分布式cron,学问就更深了,别一知半解就开始瞎喷 |
8
xierch 2015-01-09 17:17:01 +08:00 1
学校机子上有个爬虫用的 crontab
那程序每次运行都有一定几率卡在网络连接上 天长日久日久天长,32G swap 全部填满,32G 内存也所剩无几... (我不会说是我开 MC 的时候被 JVM 报内存不足才发现的( |