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

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

  •  1
     
  •   scriptB0y · 70 天前 · 5191 次点击
    这是一个创建于 70 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

    一直在想自己写一个在小组里部署使用,但是拖延症始终治不好,坐等答主开源
        41
    abmin521   62 天前
    支持
        42
    xiongshengyao   62 天前
        43
    Aether   23 天前
        44
    Aether   23 天前
    @scriptB0y 现在环境选择是 Python: undefined
    所以这个坑已经弃了么……
        45
    scriptB0y   23 天前
    @Aether 没,我知道这个问题。最近手贱部署了一下服务器,搞了一个不兼容的后端上去。最近老任务执行是没问题的,新任务添加不了。
        46
    scriptB0y   23 天前
    @Aether 兄弟我为你熬夜修好了。。。够意思吧。
        47
    Aether   22 天前
    @scriptB0y 太厉害了,赞赞赞 👍
        48
    Aether   22 天前
    @scriptB0y 然而 New tasks 里 Running Enviroment 里还是 Python undefined ……
        49
    Aether   22 天前
        50
    scriptB0y   22 天前
    @Aether 你看到的应该是缓存,刷新一下应该就好了,我测过的。
        51
    Aether   10 天前   ♥ 1
    @scriptB0y
    现在看好了。

    强烈支持 @@malusama 的两个建议:
    1、“启动时立即执行一次”或者类似的调试服务?现在要调试的话似乎不太方便(虽然在本地都调试好了)
    2、基础类库例如至少包括 requests ……其他的可以让用户来慢慢提……
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   905 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 25ms · UTC 22:40 · PVG 06:40 · LAX 14:40 · JFK 17:40
    ♥ Do have faith in what you're doing.