我需要一個(gè)任務(wù):可以打開或關(guān)閉(僅適用于管理員/授權(quán)用戶)它在一個(gè)恒定的循環(huán)中運(yùn)行它應(yīng)該在每個(gè)循環(huán)中向每個(gè)用戶顯示一個(gè)計(jì)時(shí)器,例如 60 秒(帶按鈕)如果用戶在 20 秒內(nèi)連接到此任務(wù),則該任務(wù)應(yīng)從剩余的 40 秒開始繼續(xù)我怎樣才能實(shí)現(xiàn)這樣的目標(biāo)?我正在考慮事件、隊(duì)列和任務(wù)的組合,但我不確定應(yīng)該如何使用它們來(lái)創(chuàng)建我的任務(wù)。
1 回答

倚天杖
TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超3個(gè)贊
聽起來(lái)您可以使用調(diào)度程序來(lái)控制任務(wù)的頻率
https://laravel.com/docs/7.x/scheduling
然后,您可以使用真值約束來(lái)檢查它是否應(yīng)該運(yùn)行,如下所示:
$schedule->command('your:task')->when(function () {
// Do a config check / DB check / Cache check here
return true;
});
我建議在緩存層之類的東西中設(shè)置一個(gè)值,而不是訪問(wèn)文件或使用關(guān)系數(shù)據(jù)庫(kù)。這是一項(xiàng)每秒運(yùn)行一次的任務(wù),因此您不希望任何可能過(guò)于占用資源的任務(wù)!
然后,您可以使用命令來(lái)設(shè)置您正在檢查的緩存中的值。此命令只能由您授予權(quán)限的用戶運(yùn)行。
- 1 回答
- 0 關(guān)注
- 152 瀏覽
添加回答
舉報(bào)
0/150
提交
取消