首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
V2EX  ›  分享创造

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

  •  1
     
  •   scriptB0y · 9 天前 · 4455 次点击

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

    在 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 条附言  ·  9 天前
    现在只有 Python:3 一个 image,所以其他语言暂时不能用,第三方库也暂时不能用。

    后面打算支持其他语言,以及支持任意 hub.docker.com 的 image
    42 回复  |  直到 2019-09-14 19:04:48 +08:00
        1
    bytelee   9 天前   ♥ 1
    赞一个
        2
    xycool   9 天前   ♥ 1
    不错不错,不过 Safari 上面顶部样式错位了。
        3
    mango88   9 天前
    支持一下
        4
    zagfai   9 天前   ♥ 1
    写个 CPU 死循环怎么样
        5
    isayme   9 天前
    赞一个
        6
    scofieldpeng   9 天前
    @zagfai #4 docker 运行的话楼主能够限制你的 cpu 使用率,再不济,搞一个监控,发现你这人有问题直接封账号不就得了
        7
    scriptB0y   9 天前
    @zagfai 我里面限制 pid 数量了 和最大运行时间了。
        8
    scriptB0y   9 天前
    @scofieldpeng
    @zagfai

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

    赶快回去找老大立项抄一下
        14
    joucks   9 天前
    和我们的 https://github.com/yehux/Coot 一样的
        15
    malusama   9 天前
    话说支持 python 都有哪些库啊?
    requests 支持吗?

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

    能不能在提交前可以试运行一下程序什么的?
    这样可以测试一下
        16
    scriptB0y   9 天前
    @malusama

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

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

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

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


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

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

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

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

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

    所以我觉得这玩意还是有价值的。
        20
    lk1ngaa7   9 天前
    很赞
        21
    jasonqiao36   9 天前
    期待开源
        22
    scriptB0y   9 天前
    @jasonqiao36 嗯 主要我现在自己用有个 ansible 仓库部署的,这个不开源大家也不知道拿到源码怎么部署。

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

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

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

    一直在想自己写一个在小组里部署使用,但是拖延症始终治不好,坐等答主开源
        41
    abmin521   1 天前
    支持
        42
    xiongshengyao   1 天前
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3978 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 21ms · UTC 02:54 · PVG 10:54 · LAX 19:54 · JFK 22:54
    ♥ Do have faith in what you're doing.