现在的自动化里重复只有每天每周和每月,但是明明其他地方的重复是可以支持每隔 3 天这种方法的
有没有办法曲线实现每隔三天执行一次自动化呢?
1
yzding 219 天前 via iPhone
每天执行一次,然后判断当前日期是否是 3 的倍数?
|
2
facebook47 219 天前 via Android
每 72 小时🐶
|
3
huaxianyan OP |
4
zsj1029 219 天前
crontab 了可以设置*/3 每三小时,同理可以设置三天
一楼也说了思路,每天的话,程序判断三天。 既然执行任务,可以看看有没有持久化记录上次执行时间,然后看看是否满足三天间隔 |
5
icestraw 219 天前
你自己用 每天执行一次,然后时间戳把毫秒转换成天,然后再 mod3
|
6
huaxianyan OP @zsj1029 这个思路有尝试过,但是对比日期这块卡住了,想每次执行的时候把时间写到本机的一个文本内,然后下次执行的时候读取进行对比,不过读和写试了很多项都不对
|
7
dingdangnao 219 天前
写个接口 自己做逻辑判断 每三天返回 1 其他时间返回 0
自动化每天运行 从接口读 😂 |
8
Diphia 219 天前
@huaxianyan 既然都写文件了,那不如直接写 unixtimestamp ,然后每次看差值到 3 * 24 * 60 * 60 了没有。这样会一直稍微延后一点,或者你设定一个最初的时间去和它的 timestamp 对比
|
9
ho121 219 天前 via Android
sleep 3*24*60*60
|
10
zsj1029 219 天前
@huaxianyan 简单逻辑,每天执行,计算执行次数每次+1 ,然后%3 取余
1 、获取本地文件执行次数 count 2 、count+=1 3 、如果 count%3=0 ,执行逻辑代码 4 、最后 count 的次数再次写入本地文件 |
11
xiaociwei 219 天前
设置最早跑的日期为常量,然后后续算日期天数差能被 3 整除的 就跑
|
12
xiaooloong 219 天前
每天执行,每次把写入的整数 +1 ,轮到 3 的倍数执行真正需要的操作
|
13
F7TsdQL45E0jmoiG 219 天前
在 10:00 AM, 每 3 天 、00 10 */3 * *
|
14
coolloves 219 天前
刚好之前也有这种需要,有个 shell 脚本 可以参考下
``` start_interval=432000 end_interval=518400 start_date=$(date -d '2024-02-04 02:00' +%s) now=$(date +%s) cycle=$(( (now - start_date) / 432000 )) [ $cycle -lt 1 ] && cycle=1 cycle_start=$(( start_date + cycle * 432000 )) cycle_end=$(( cycle_start + start_interval )) if [ $((now - cycle_start)) -gt 0 ] && [ $((now - cycle_start)) -lt 80000 ];then command fi ``` |
15
c6h6benzene 219 天前 via iPhone
跟固定锚点比时间差取余就好了?上面提到的 unix 时间戳正好。
|
16
wweerrgtc 219 天前
快捷指令中有获取两个日期中的差值的选项
用这个应该很好实现 |
17
anoninz 219 天前
每天执行一次,写一个判断(当天与某个写死的特定日子相隔天数是否能被三整除)
|
18
gdfsjunjun 219 天前
记录时间戳,每天运行,看是否相差大于三天的秒数不就好了
|
19
huaxianyan OP @c6h6benzene
感谢,这个方法成功了,锚了一个时间计算间隔时间,然后除以 3 以余数来判断,算是曲线实现了 |
20
wclebb 219 天前
好像可以放在日期(就是日历那个)上执行。
然后日历上用重复来实现你的目的。 |
21
CivAx 219 天前
正好我之前写过这个:
----- 格式化日期:格式化 2024 年 1 月 1 日(或任何你希望的起始日期) 从输入中获取日期:从 (格式化日期) 获取日期 获取日期之间的时常:获取 (当前日期) 到 (起始日期) 之间的时长,单位为 (天) 获取变量:获取 (日期之间的时常) 计算结果:(日期之间的时常) ÷ 3 为数字取整:将 (计算结果) 取整到个位 如果:如果 (取整后的数字) (是) (计算结果) # 等于判断是否 (计算结果) 有小数,如果能整除则为真 -- 则执行操作 否则 -- 结束条件 ---- 这个之前是写给某个需要隔 3 天服用的药品用的。这里用的判断是,判断 “执行日” 距离 “起始日(初次服药日)” 是否为 3 ,或能被 3 整除,如果为真,那么就代表隔了 3 天到了下一个服药日;如果不能整除 —— 也就是 “计算结果” 与 “为数字取整” 不全等,那么代表间隔日不足 3 天。 这个方法不存在闰年 Bug 。 |
22
buf1024 219 天前
cron tab
|
23
pipilu 219 天前
执行的时候逢三 return
|
24
YGHMXFAL 219 天前
sleep "$((3*24*60*60))"
(别打我) |
26
googol2chen 219 天前
每年执行一次呢?
|
28
allegory 218 天前 via iPhone
@huaxianyan 10 位时间戳除以 86400 不就可以得到天了嘛
|