为了账号安全,请及时绑定邮箱和手机立即绑定

Laravel 重复任务

Laravel 重复任务

PHP
一只萌萌小番薯 2023-10-21 16:00:05
我需要一个任务:可以打开或关闭(仅适用于管理员/授权用户)它在一个恒定的循环中运行它应该在每个循环中向每个用户显示一个计时器,例如 60 秒(带按钮)如果用户在 20 秒内连接到此任务,则该任务应从剩余的 40 秒开始继续我怎样才能实现这样的目标?我正在考虑事件、队列和任务的组合,但我不确定应该如何使用它们来创建我的任务。
查看完整描述

1 回答

?
倚天杖

TA贡献1828条经验 获得超3个赞

听起来您可以使用调度程序来控制任务的频率

https://laravel.com/docs/7.x/scheduling

然后,您可以使用真值约束来检查它是否应该运行,如下所示:

$schedule->command('your:task')->when(function () {

    // Do a config check / DB check / Cache check here

    return true;

});

我建议在缓存层之类的东西中设置一个值,而不是访问文件或使用关系数据库。这是一项每秒运行一次的任务,因此您不希望任何可能过于占用资源的任务!


然后,您可以使用命令来设置您正在检查的缓存中的值。此命令只能由您授予权限的用户运行。


查看完整回答
反对 回复 2023-10-21
  • 1 回答
  • 0 关注
  • 99 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信