定时任务的测试结果

当服务器设置每分钟生效的时候 程序如果设置10分钟生效那么它会每小时的十分钟运行!
无论是程序还是服务器的设置都是按照时间来定,而不会说啥时候开启的啥时候运行、当服务器运行时间到则进入程序、程序则运行并判断运行时间、目前得到的结论是这样!具体对错不清楚、已开启周期任务、明天看看

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 14

@qietugou 文档只说了程序的、没有说服务器的怎么设置 也没说两者之间的关联、总不能用文档里所说的每分钟执行一次吧

4年前 评论

文档已经很清楚了

4年前 评论

我测试的结果

每10分钟就是真的每个小时的0/10/20/30/.../50分执行 就是能被10整除的分钟数 小时、周一样

我觉得这么设计挺好的 我觉得符合人类时间的定义和认知 假设一个网站来说每10分钟搞个什么终端用户完全知道啥时间会发生什么事

4年前 评论

@cevin 是挺好的!但是你不可能真的设置十分钟一次、毕竟这个任务不是一条、而且我昨晚测试过、服务器设置39 */1 * * *!程序设置hourly和daily竟然没调用。。。不知道咋回事

4年前 评论
cevin 4年前
cevin 4年前

@fengqyuan 会不会是服务器设置的每小时内的必须大于等程序的、也就是0 */1才可以 不能用39 */1、 :joy:有兴趣可以测试一番 具体不清楚咋回事

4年前 评论

php 不是常驻 服务器设置 每分钟执行一次检测脚本

脚本里面才是你真正的定时任务,例如下面的 服务器就按照文档设置每分钟执行一次

        /** 即将过期提醒 */
        $schedule->command('checkProductExpire')->dailyAt('00:05')->onOneServer();
        /** 已过期提醒 */
        $schedule->command('product:expired')->dailyAt('23:55')->onOneServer();
        /** 即将过期提醒 每天00:05执行*/
        $schedule->command('checkHost')->dailyAt('00:05')->onOneServer();
        /** 主机过期状态变更  */
        $schedule->command('hostExpired')->everyMinute()->onOneServer();
4年前 评论

@yekern 我知道你的意思 但是我不想让服务器每分钟执行一次、我设置的是两小时。。。然后再结合程序的

4年前 评论
cevin 4年前
cevin 4年前
fengqyuan (作者) (楼主) 4年前
cevin 4年前
fengqyuan (作者) (楼主) 4年前
cevin 4年前
fengqyuan (作者) (楼主) 4年前
cevin 4年前
fengqyuan (作者) (楼主) 4年前
fengqyuan (作者) (楼主) 4年前
fengqyuan (作者) (楼主) 4年前
cevin 4年前
fengqyuan (作者) (楼主) 4年前

你不想让服务器每分钟执行一次?为什么?

虽然不知道你到底要实现什么样的逻辑,但是你明确说明不想让服务器每分钟执行一次。

那Laravel文档中说明的下列方法就不能用了, 因为一旦使用下列Cron,Laravel就会每分钟执行一次。

* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1

如果没有上述Cron,我们就无法在命令行执行Laravel了吗?那倒不是。

如果要特定时间执行某个逻辑,你需要创建Command,具体创建过程在文档里,而Command是可以用

php artisan test:command在命令行运行,那Crontab就可以设定成

* */2 * * * cd /path-to-your-project && php artisan test:command >> /dev/null 2>&1

了吧

4年前 评论

大概明白啥意思了, 不想后台每分钟检测是不是该到时间执行任务了,那么你就可以不用任务检测啊, 自己写个commad 然后 如楼上@songxue77 的不不就好了么 完全用不到 框架自带的定时任务, 或者自己写一个php文件然后使用系统自带定时调用就好了啊.

4年前 评论

@songxue77 :joy:我还是对框架有好感的 想用到它 因为我不是一个任务 可能有四五个、所以在研究他是咋回事。。。

4年前 评论
songxue77 4年前
fengqyuan (作者) (楼主) 4年前
songxue77 4年前

对于这种定时的,我还是喜欢用redis的key过期事件通知

4年前 评论
fengqyuan (楼主) 4年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!