请教一下,自动化如何才能实现每三天执行一次呢?

2024-04-17 10:22:13 +08:00
 huaxianyan

现在的自动化里重复只有每天每周和每月,但是明明其他地方的重复是可以支持每隔 3 天这种方法的

有没有办法曲线实现每隔三天执行一次自动化呢?

10702 次点击
所在节点    iPhone
28 条回复
yzding
2024-04-17 10:29:02 +08:00
每天执行一次,然后判断当前日期是否是 3 的倍数?
facebook47
2024-04-17 10:30:19 +08:00
每 72 小时🐶
huaxianyan
2024-04-17 10:53:48 +08:00
@yzding 是只判断日吗,那这样月初月尾衔接的时候应该会有意外
@facebook47 这个要如何设置呢?自动化的特定时间里重复没有每 72 小时选项
zsj1029
2024-04-17 10:57:07 +08:00
crontab 了可以设置*/3 每三小时,同理可以设置三天
一楼也说了思路,每天的话,程序判断三天。
既然执行任务,可以看看有没有持久化记录上次执行时间,然后看看是否满足三天间隔
icestraw
2024-04-17 11:02:24 +08:00
你自己用 每天执行一次,然后时间戳把毫秒转换成天,然后再 mod3
huaxianyan
2024-04-17 11:03:03 +08:00
@zsj1029 这个思路有尝试过,但是对比日期这块卡住了,想每次执行的时候把时间写到本机的一个文本内,然后下次执行的时候读取进行对比,不过读和写试了很多项都不对
dingdangnao
2024-04-17 11:09:37 +08:00
写个接口 自己做逻辑判断 每三天返回 1 其他时间返回 0
自动化每天运行 从接口读 😂
Diphia
2024-04-17 11:13:51 +08:00
@huaxianyan 既然都写文件了,那不如直接写 unixtimestamp ,然后每次看差值到 3 * 24 * 60 * 60 了没有。这样会一直稍微延后一点,或者你设定一个最初的时间去和它的 timestamp 对比
ho121
2024-04-17 11:16:40 +08:00
sleep 3*24*60*60
zsj1029
2024-04-17 11:19:36 +08:00
@huaxianyan 简单逻辑,每天执行,计算执行次数每次+1 ,然后%3 取余
1 、获取本地文件执行次数 count
2 、count+=1
3 、如果 count%3=0 ,执行逻辑代码
4 、最后 count 的次数再次写入本地文件
xiaociwei
2024-04-17 11:20:17 +08:00
设置最早跑的日期为常量,然后后续算日期天数差能被 3 整除的 就跑
xiaooloong
2024-04-17 11:22:20 +08:00
每天执行,每次把写入的整数 +1 ,轮到 3 的倍数执行真正需要的操作
F7TsdQL45E0jmoiG
2024-04-17 11:31:05 +08:00
在 10:00 AM, 每 3 天 、00 10 */3 * *
coolloves
2024-04-17 11:31:09 +08:00
刚好之前也有这种需要,有个 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
```
c6h6benzene
2024-04-17 11:32:57 +08:00
跟固定锚点比时间差取余就好了?上面提到的 unix 时间戳正好。
wweerrgtc
2024-04-17 11:35:03 +08:00
快捷指令中有获取两个日期中的差值的选项

用这个应该很好实现
anoninz
2024-04-17 11:39:53 +08:00
每天执行一次,写一个判断(当天与某个写死的特定日子相隔天数是否能被三整除)
gdfsjunjun
2024-04-17 11:41:21 +08:00
记录时间戳,每天运行,看是否相差大于三天的秒数不就好了
huaxianyan
2024-04-17 11:58:19 +08:00
@c6h6benzene
感谢,这个方法成功了,锚了一个时间计算间隔时间,然后除以 3 以余数来判断,算是曲线实现了
wclebb
2024-04-17 12:09:22 +08:00
好像可以放在日期(就是日历那个)上执行。
然后日历上用重复来实现你的目的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1033166

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX