免费的定时任务托管 clock.sh - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
scriptB0y
V2EX    分享创造

免费的定时任务托管 clock.sh

  •  1
     
  •   scriptB0y
    laixintao 2019-09-06 15:22:45 +08:00 9719 次点击
    这是一个创建于 2257 天前的主题,其中的信息可能已经有所发展或是发生改变。

    自己有很多定时任务要跑,所以之前搞了一个定时运行的系统。

    在 V2EX 看到很多有类似需求的朋友:

    所以在这里贴一下,有脚本要跑的朋友可以用这个。

    地址: https://clock.sh/

    帮助文档: https://help.clock.sh/

    有问题在这里开 issue: https://github.com/clock-sh/ticket


    Features

    • 定时器、worker、队列都是冗余的,所以是高可用的;
    • 由专业的 SRE 运维(是的,正是在下);
    • 支持(成功时、失败时、或者总是)发送消息到 telegram slack 等主流 IM ;
    • 每一个任务都跑在 Docker 里面,所以你基本不用去烦恼 PATH 变量、配置问题,只要写一个你想跑的脚本就可以;
    • 由于是 Docker,所以支持任何语言(虽然现在我只搞了个 Python image );
    • 方便,Github 登陆就能用;
    • 免费,但是请大家按需使用,不要搞很多不需要的每分钟运行的任务...

    不太好的东西:

    • 你要把脚本保存在我这里,所以要信任我。但是不建议把一些敏感信息,比如常用账号密码写在脚本里面。最好对定时任务的脚本权限最小化。比如要发送邮件的话,专门建立一个新的邮箱;

    截图

    Screen Shot 2019-09-06 at 3.20.43 PM.png Screen Shot 2019-09-06 at 3.20.15 PM.png Screen Shot 2019-09-06 at 3.20.25 PM.png

    第 1 条附言    2019-09-06 16:54:22 +08:00
    现在只有 Python:3 一个 image,所以其他语言暂时不能用,第三方库也暂时不能用。

    后面打算支持其他语言,以及支持任意 hub.docker.com 的 image
    52 条回复    2020-02-28 15:05:17 +08:00
    bytelee
        1
    bytelee  
       2019-09-06 15:38:17 +08:00   1
    赞一个
    xycool
        2
    xycool  
       2019-09-06 15:49:14 +08:00   1
    不错不错,不过 Safari 上面顶部样式错位了。
    mango88
        3
    mango88  
       2019-09-06 15:50:05 +08:00
    支持一下
    zagfai
        4
    zagfai  
       2019-09-06 15:56:32 +08:00   1
    写个 CPU 死循环怎么样
    isayme
        5
    isayme  
       2019-09-06 16:28:46 +08:00
    赞一个
    scofieldpeng
        6
    scofieldpeng  
       2019-09-06 16:32:58 +08:00
    @zagfai #4 docker 运行的话楼主能够限制你的 cpu 使用率,再不济,搞一个监控,发现你这人有问题直接封账号不就得了
    scriptB0y
        7
    scriptB0y  
    OP
       2019-09-06 16:33:12 +08:00
    @zagfai 我里面限制 pid 数量了 和最大运行时间了。
    scriptB0y
        8
    scriptB0y  
    OP
       2019-09-06 16:34:55 +08:00
    @scofieldpeng
    @zagfai

    以及 Docker 的 runc 我替换成了 runsc,( gVisor ),所以隔离性比 docker 也会好一些。
    bobsam
        9
    bobsam  
       2019-09-06 18:01:31 +08:00
    想问问:
    执行成功后,调用 bark 的推送接口,但是一直调用失败,请问是什么原因呢?
    scriptB0y
        10
    scriptB0y  
    OP
       2019-09-06 18:09:13 +08:00
    @bobsam bark 是啥?是 clock 这里的通知功能吗?
    lauix
        11
    lauix  
       2019-09-06 18:09:20 +08:00   1
    和我们的 https://github.com/yehux/Coot 一样的
    nolo
        12
    nolo  
       2019-09-06 18:13:33 +08:00
    首先给楼主点赞。但这个功能云厂商的函数计算也能做,而且做的更好
    如果之后支持 image 是个独一无二的功能点
    swulling
        13
    swulling  
       2019-09-06 18:15:33 +08:00 via iPhone
    image 是一个好的,这个可以做一个 saas 服务了

    赶快回去找老大立项抄一下
    joucks
        14
    joucks  
       2019-09-06 18:27:01 +08:00
    和我们的 https://github.com/yehux/Coot 一样的
    malusama
        15
    malusama  
       2019-09-06 18:41:25 +08:00
    话说支持 python 都有哪些库啊?
    requests 支持吗?

    而且保存任务后不能修改时间了。

    能不能在提交前可以试运行一下程序什么的?
    这样可以测试一下
    scriptB0y
        16
    scriptB0y  
    OP
       2019-09-06 19:02:15 +08:00
    @malusama

    话说支持 python 都有哪些库啊?
    requests 支持吗?

    镜像就是原生的 Python:3 什么库都没有的。

    而且保存任务后不能修改时间了。

    > 能不能在提交前可以试运行一下程序什么的?
    这样可以测试一下


    有这个计划来着。。。但是还没时间搞。搞个试运行的按钮。
    但是现在可以直接用 Docker run python:3 这个 image 在你本地测试。
    scriptB0y
        17
    scriptB0y  
    OP
       2019-09-06 19:02:53 +08:00
    @malusama 不用抄了,回头我把源码放到 github 上。
    lostberryzz
        18
    lostberryzz  
       2019-09-06 19:05:17 +08:00
    域名不错
    scriptB0y
        19
    scriptB0y  
    OP
       2019-09-06 19:06:09 +08:00
    @nolo 是的,我以前用 lambda 的,为什么要做这个呢? lambda 太繁琐了。。。

    lambda 需要注册账号,交信用卡,搞账单吧,计算方式还很复杂,我只要 github 登陆就可以了;

    lambda 定时任务怎么调度,需要引入一个调度服务吧,怎么处理日志,需要搞 cloudwatch 吧(账单更复杂了)。需要学习怎么玩吧,怎么搭环境。我这里只要填 4 个字段就可以了。

    lambda 怎么通知到 telegram,需要自己配置吧,我这里只要填写一个字段就可以了。

    lambda 可以用 dynamo 数据库啥的存储服务,我这里……好吧我做不到。。。任务怎么持久数据,我真没想好。

    所以我觉得这玩意还是有价值的。
    lk1ngaa7
        20
    lk1ngaa7  
       2019-09-06 19:20:16 +08:00
    很赞
    jasonqiao36
        21
    jasonqiao36  
       2019-09-06 22:43:42 +08:00
    期待开源
    scriptB0y
        22
    scriptB0y  
    OP
       2019-09-06 22:59:39 +08:00
    @jasonqiao36 嗯 主要我现在自己用有个 ansible 仓库部署的,这个不开源大家也不知道拿到源码怎么部署。

    这套玩意包括:
    - 多个定时器进程
    - 高可用的 broker
    - db
    - 多个 worker 进程
    - 多个 worker 事件消费(包括发送任务通知,更新 db 中 worker 的状态)
    - 以及 web 后台
    - 监控系统

    所以还是等等再开源代码吧。。。
    cmdOptionKana
        23
    cmdOptionKana  
       2019-09-06 23:50:59 +08:00
    域名优秀啊
    gimp
        24
    gimp  
       2019-09-07 00:14:53 +08:00
    挺好,我在公司也做了一个脚本运行时平台,你可以把 python 镜像封装一层,加些包,用途就更广了
    DearTanker
        25
    DearTanker  
       2019-09-07 00:27:34 +08:00
    支持做小工具的大佬。
    shiny
        26
    shiny  
    PRO
       2019-09-07 00:29:07 +08:00
    今天还在折腾 GitHub Actions 里的定时器
    Riohun
        27
    Riohun  
       2019-09-07 08:25:35 +08:00 via Android
    很方便的小工具!
    ch3nOr
        28
    ch3nOr  
       2019-09-07 10:37:34 +08:00
    感觉不错,楼主有没有考虑过集成类似 Airflow 的功能
    scriptB0y
        29
    scriptB0y  
    OP
       2019-09-07 15:32:50 +08:00
    @gimp 是的 打算这样呢。

    @ch3nOr 我考虑集成 ifttt 呢,aitflow 会不会太复杂了,不想搞得很复杂用起来很麻烦。。。
    zhihaofans
        30
    zhihaofans  
       2019-09-07 16:00:19 +08:00 via Android
    @joucks @lauix 用不着开两个号说两遍吧…
    ericgui
        31
    ericgui  
       2019-09-08 01:11:09 +08:00
    什么时候上 nodejs
    python 不太会用
    Isaac313
        32
    Isaac313  
       2019-09-08 10:27:54 +08:00 via Android
    感觉不错,等 append 源码学习一下
    scriptB0y
        33
    scriptB0y  
    OP
       2019-09-08 14:30:28 +08:00
    @ericgui 下个周吧。最近有点忙。node 我本地试过的,还没部署上去。
    zhenlang
        34
    zhenlang  
       2019-09-08 17:07:22 +08:00
    感觉自己当时创想的 install.sh.cn
    却没达到曾经的要求。
    希望能向大佬学习
    scriptB0y
        35
    scriptB0y  
    OP
       2019-09-09 11:08:36 +08:00
    @zhenlang 你这个域名,看样子比较像:now.sh ?
    xidianlz
        36
    xidianlz  
       2019-09-10 20:06:13 +08:00
    提两点小意见:
    1,时区好像不太对,crontab 写的是 30 20 * * * ,也就是每天晚上八点半执行,可是在 my task 那个页面看这个任务的下次运行时间是 4:30,刚好差了 8 个小时。
    2,每个 task 可以有一个立即执行的选项,这样比较容易调试。
    最后,谢谢楼主提供这样的工具
    scriptB0y
        37
    scriptB0y  
    OP
       2019-09-11 21:10:26 +08:00
    @xidianlz 是的,时区的问题很难搞啊,因为 crontab 是不包含时区信息的,我想让每个用户填写的 crontab 都按照自己的时区填写,然后按照自己的时区执行。但是还没有空完成这个 feature。
    xidianlz
        38
    xidianlz  
       2019-09-12 10:19:02 +08:00
    @scriptB0y emmmm crontab 是不包含时区,但是机器是有时区的啊,crontab 默认使用的就是机器的时区,如果没错的话,你机器用的应该是格林威治时间。如果你不改动机器上的时区,前段提交的时候选一个时区就好了啊,比如东八区,之后再把东八区的时间转换到 crontab 的时间存起来就好了。
    scriptB0y
        39
    scriptB0y  
    OP
       2019-09-12 13:07:06 +08:00
    @xidianlz crontab 的时区转换是非常复杂的,比如原定 30 日 23 点执行,转换之后是次日 1 点,crontab 就完全不一样了。
    litao3rd
        40
    litao3rd  
       2019-09-12 17:24:37 +08:00
    为啥要转换 crontab 的时区?

    一直在想自己写一个在小组里部署使用,但是拖延症始终治不好,坐等答主开源
    abmin521
        41
    abmin521  
       2019-09-14 12:34:01 +08:00
    支持
    xiongshengyao
        42
    xiongshengyao  
       2019-09-14 19:04:48 +08:00
    Aether
        43
    Aether  
       2019-10-23 17:24:30 +08:00
    Aether
        44
    Aether  
       2019-10-23 17:26:02 +08:00
    @scriptB0y 现在环境选择是 Python: undefined
    所以这个坑已经弃了么……
    scriptB0y
        45
    scriptB0y  
    OP
       2019-10-24 00:01:21 +08:00
    @Aether 没,我知道这个问题。最近手贱部署了一下服务器,搞了一个不兼容的后端上去。最近老任务执行是没问题的,新任务添加不了。
    scriptB0y
        46
    scriptB0y  
    OP
       2019-10-24 00:58:28 +08:00
    @Aether 兄弟我为你熬夜修好了。。。够意思吧。
    Aether
        47
    Aether  
       2019-10-24 16:01:55 +08:00
    @scriptB0y 太厉害了,赞赞赞
    Aether
        48
    Aether  
       2019-10-24 16:18:57 +08:00
    @scriptB0y 然而 New tasks 里 Running Enviroment 里还是 Python undefined ……
    scriptB0y
        50
    scriptB0y  
    OP
       2019-10-24 19:32:06 +08:00
    @Aether 你看到的应该是缓存,刷新一下应该就好了,我测过的。
    Aether
        51
    Aether  
       2019-11-05 20:51:04 +08:00   1
    @scriptB0y
    现在看好了。

    强烈支持 @@malusama 的两个建议:
    1、“启动时立即执行一次”或者类似的调试服务?现在要调试的话似乎不太方便(虽然在本地都调试好了)
    2、基础类库例如至少包括 requests ……其他的可以让用户来慢慢提……
    Harlaus
        52
    Harlaus  
       2020-02-28 15:05:17 +08:00
    期待开源
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4487 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 36ms UTC 10:05 PVG 18:05 LAX 02:05 JFK 05:05
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86