全球主机交流论坛

标题: 问个关于laravel的技术问题 [打印本页]

作者: cnzmz    时间: 2021-7-19 08:17
标题: 问个关于laravel的技术问题
自己做的一个laravel框架的系统,中间要用到延迟任务,延迟一两天的都有,如果几天设置了一个48小时的延迟任务人后今晚服务器重启了,48小时候还会执行这个任务吗?
还是说服务器重启之后,一切queue任务都消失了
作者: 鱼板面    时间: 2021-7-19 08:23
这个应该和你的队列驱动器有关系,队列本身是阻塞的,如果是sync应该就失效了,redis应该没问题,你可以自己试试嘛很好验证的
作者: imnpc    时间: 2021-7-19 09:28
laravel 一般推荐使用redis保存队列任务
如果重启了   redis的数据一般会被清空的 除非设置了永久存储 宝塔好像带这个   不过我们一般不使用

目前我的使用来说   强烈不建议使用中重启服务器

作者: Firefly    时间: 2021-7-19 09:37
本帖最后由 Firefly 于 2021-7-19 09:42 编辑

Laravel自己有个Scheduler每分钟执行,自己写的任务由这个Scheduler调度。
所以你可以把你的任务设置成每两天的几点几分执行,这样应该就没问题了
作者: cnzmz    时间: 2021-7-20 20:37
鱼板面 发表于 2021-7-19 08:23
这个应该和你的队列驱动器有关系,队列本身是阻塞的,如果是sync应该就失效了,redis应该没问题,你可以自 ...

好的,多谢多谢,我就是用的redis,我试试看
作者: cnzmz    时间: 2021-7-20 20:38
imnpc 发表于 2021-7-19 09:28
laravel 一般推荐使用redis保存队列任务
如果重启了   redis的数据一般会被清空的 除非设置了永久存储 宝塔 ...

非常感谢,我去研究下看看,就是用的宝塔,但是有时候难免会重启,万一重启一下之后,redis清空之后,很多东西就乱套了
作者: cnly1987    时间: 2021-7-20 20:38
redis 重启就 直接重置了。
除非你把队列写到数据库里面去。
作者: cnzmz    时间: 2021-7-20 20:39
Firefly 发表于 2021-7-19 09:37
Laravel自己有个Scheduler每分钟执行,自己写的任务由这个Scheduler调度。
所以你可以把你的任务设置成每两 ...

自己的scheduler确实还没研究过,可以看看
作者: cnzmz    时间: 2021-7-20 20:44
cnly1987 发表于 2021-7-20 20:38
redis 重启就 直接重置了。
除非你把队列写到数据库里面去。

这么看来,mysql用做队列任务应该会比redis更保险,为什么还是有很多人用redis而不用mysql呢
作者: 安好    时间: 2021-7-20 21:10
redis 有aof, 持久化的
作者: h20    时间: 2021-7-20 21:18
提示: 作者被禁止或删除 内容自动屏蔽
作者: cnly1987    时间: 2021-7-20 22:21
cnzmz 发表于 2021-7-20 20:44
这么看来,mysql用做队列任务应该会比redis更保险,为什么还是有很多人用redis而不用mysql呢 ...

这又是另外一个问题了。
我经常这样干, 队列任务写入redis和sqlite,任务完成 通多任务ID,把sqlite里面的队列信息删除。
定义一个时间和重启次数,如果超出这个时间sqlite 任务还在,就回去kill任务再重做。超过次数就不再队列,保存logs 发送邮件给自己。




欢迎光临 全球主机交流论坛 (https://fd.vvwvv.eu.org/) Powered by Discuz! X3.4