推荐一个HTTP定时任务工具cron
推荐一个HTTP定时任务工具cron-job.org,可以帮你自动签到
最近有个简单的需求,需要实现对部分网站实现自动签到,在此之前试过 HUB.com/qiandao-today/qiandao" target="_blank"> QianDao for Python3 ,但是每一个任务都要写HAR,感觉很繁琐,再加上xiaoz比较懒,于是就在寻找更简单的方案,最后发现了 cron-job.org
自动签到需要满足的要求
尝试
一些HTTP监控工具可以做到自定义请求 header,比如监控宝,但监控宝是周期性重复发起HTTP 请求,不支持自定义时间,遂放弃。
于是改用shell 脚本 + crontab 实现,满足上面的所有需求点,但是添加和修改不那么方便。
那是否有一个提供可视化的WEB界面,支持自定义时间发起HTTP请求的工具呢?最后在V友的推荐下发现了
cron-job.org
,满足上面3点要求。
关于cron-job.org
cron-job.org
是一个开源免费的HTTP定时任务工具,功能如下:
注册cron-job.org
注册后,邮箱验证下就能用了。免费版不限制任务数量(良心),但是和会员版有所区别,如下截图。
用cron-job.org添加一个自动签到任务
注意:以下内容涉及一定专业知识,需要对HTTP协议有所了解。
在后台: https://console.cron-job.org/jobs/create 创建一个新的任务,在那里的设置如下截图(图片可点击放大)。
切换到,进行自定义Header,通常我们需要自定义3个header头部,如果部分网站更加严格,可能需要更多头部,自行分析HTTP抓包内容即可。
最后点击底部的“TEST RUN”查看测试结果,没有问题的话点“SAVE”即可。
安全风险
上述内容我们使用了
cron-job.org
提供的在线服务,会将cookie内容交给
cron-job.org
,虽然
cron-job.org
可能不会主动泄露,但无法保障被动泄露的可能。如果你打算用
cron-job.org
自动签到,适合一些不重要的小网站,非常重要的或者涉及隐私数据的话不太推荐。
另外
cron-job.org
已经在Github开源(搭建较为复杂),有兴趣的可自行研究:
https://github.com/pschlan/cron-job.org
其它网站签到方案
补充说明
通过cookie签到存在一些不足,cookie具有一定有效期,不同的网站有效期不一样。cookie过期后您需要重新获取并在
cron-job.org
的任务中更新cookie
cron-job.org 能做的不仅仅是网站签到,签到只是其中一个场景,比如您还可以用 cron-job.org 来监控您的api接口,总之根据自己的需要合理使用 cron-job.org 即可。( 注意:滥用会被删号 )
想问一下,统信Cron定时任务服务是啥?
1、cron是一个可以用来根据时间、日期、月份、星期的组合来 调度对周期性任务执行的守护进程。 2、利用 cron 所提供的功能,可以将需要周期性重复执行的任务 设置为 cron 任务,并且设置为在主机较空闲的时间(如夜间)自动 完成
几种主流的分布式定时任务,你知道哪些?
自从JDK1.5之后,提供了ScheduledExecutorService代替TimerTask来执行定时任务,提供了不错的可靠性。
Spring Framework自带定时任务,提供了cron表达式来实现丰富定时任务配置。新手推荐使用这个网站来匹配你的cron表达式。
单点的定时服务在目前微服务的大环境下,应用场景越来越局限,所以尝鲜一下分布式定时任务吧。
关于该功能的使用,DD的Spring Boot教程中也有介绍,感兴趣的小伙伴可以通过这个链接查看:
相较于之前两种方式,这种基于Redis的实现可以通过多点来增加定时任务,多点消费。但是要做好防范重复消费的准备。
将定时任务存放到ZSet集合中,并且将过期时间存储到ZSet的Score字段中,然后通过一个循环来判断当前时间内是否有需要执行的定时任务,如果有则进行执行。
具体实现代码如下:
适用场景如下:
优势是:
默认情况下Redis是不开启键空间通知的,需要我们通过config set notify-keyspace-events Ex的命令手动开启。
开启之后定时任务的代码如下:
Spring会监听符合以下格式的Redis消息
基于Redis的定时任务能够适用的场景也比较有限,但实现上相对简单,但对于功能幂等有很大要求。从使用场景上来说,更应该叫做延时任务。
场景举例:
优劣势是:
将定时任务作为单独的服务,遏制了重复消费,独立的服务也有利于扩展和维护。
依赖于MySQL,使用相对简单,可多节点部署,通过竞争数据库锁来保证只有一个节点执行任务。没有图形化管理页面,使用相对麻烦。
依赖于Zookeeper,通过zookeeper的注册与发现,可以动态的添加服务器。
关于该框架的实用,DD在博客也连载过,通过这个链接可以直接看详细教程:
依赖于Zookeeper,集群部署,可以动态的添加服务器。可以手动增加定时任务,启动和暂停任务。
国产,依赖于MySQL,基于竞争数据库锁保证只有一个节点执行任务,支持水平扩容。可以手动增加定时任务,启动和暂停任务。
微服务下,推荐使用xxl-job这一类组件服务将定时任务合理有效的管理起来。而单点的定时任务有其局限性,适用于规模较小、对未来扩展要求不高的服务。
相对而言,基于spring task的定时任务最简单快捷,而xxl-job的难度主要体现在集成和调试上。无论是什么样的定时任务,你都需要确保:
中间件可以将服务解耦,但增加了复杂度
作者:襄垣
SpringBoot 定时任务cron
首先在启动类中加上注解 @EnableScheduling 二、 0/5 * * * * ?代表每隔五秒执行一次。 cron一共有7位,最后一位是年,可以留空,所以我们可以写6位: 第一位,表示秒,取值0-59 第二位,表示分,取值0-59 第三位,表示小时,取值0-23 第四位,表示日,取值1-31 第五位,表示月份,取值1-12 第六位,表示星期/周,取值1-7,1表示星期天,2表示星期一。 第7为,表示年份,可以留空,取值1970-2099 其中最难理解的就是那些符号了,下面每个符号举个栗子:, :表示列出枚举值,例如在第二位使用5,35,表示在分钟数为5、35时执行。 - :表示范围,例如在第二位使用5-35,表示在分钟数为5到35时每分钟都执行。 * :表示匹配该域的任意值。 例如在第二位使用 * 表示分钟数不做限制,每分钟都会执行。 / :表示起始时间开始执行,然后每隔固定时间执行一次。 例如在第二位使用5/6,表示在分钟数为5时执行一次,然后隔6分钟执行一次,也就是在11、17分钟再分别执行。 ? :只能用在第四位(日)和第六位(星期)两个域,因为这两个域互斥,必须对其一设置?。 L :表示最后。 只能用在第四位(日)和第六位(星期)两个域,如果在第六位使用5L,意味着在最后的一个星期四执行。 W :表示有效工作日(周一到周五),只能出现在第四位(日)域。 系统将在离指定日期最近的有效工作日出发事件。 如15W,表示最接近15号的工作日,可能是15号(刚好是工作日)那就在15号执行。 15号如果不是工作日,是星期天,那就往后推,在16号执行。 16号是最接近工作日的日期。 LW :表示某个月最后一个工作日。 # :用于确定每个月第几个星期几,只能出现在第六位(星期)域,例如4#3,表示某月的第3个星期三。 C ::只能用在第四位(日)和第六位(星期)两个域,需要关联日历,如果没关联可以忽略。 专有符号中除?外,在spirng定时任务中都 不支持 . 测试 项目启动的时候就会出现异常 那在哪里能使用呢??Quartz 支持。 在线Cron表达式生成器 可以去测试一下.定时任务默认是单线程的,如果认为持续时间较长,就会将后面的定时任务拖延,导致丢失任务。 测试: 可以看出这两个定时任务都是一个线程在执行,如果有一个定时任务执行比较耗时(比如:configureTasks模拟耗时,开启线程睡眠),就会造成任务丢失。 启动类上加上注解
外链关键词: 设计师笔记本电脑排名 福建省专升本考试科目 合肥芝麻开门心理咨询中心 红鸡冠花的功效与作用 大学声乐表演专业 大胸妹子图片 办理英国旅游签证 中专学历认证香港学历要求本文地址: https://www.q16k.com/article/eed18c56f31f4e9d5e19.html