第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

取消 Laravel 中的作業(yè)

取消 Laravel 中的作業(yè)

PHP
蕪湖不蕪 2023-08-06 14:53:44
如果我調(diào)用以下內(nèi)容:return AdventureJob::dispatch($event->character->refresh(), $event->adventure, $event->levelsAtATime)->delay($timeTillFinished);這將創(chuàng)建一個(gè)延遲 x 分鐘的作業(yè)。我的作業(yè)都是通過(guò)redis處理的,有沒(méi)有辦法獲取這個(gè)特定的作業(yè)或從隊(duì)列中刪除這個(gè)特定的作業(yè)?人們談?wù)?php artisan 命令然后刪除所有作業(yè),這不是我想要的我想要獲取有關(guān)此作業(yè)的某種信息(作業(yè) ID?或隊(duì)列 ID?Redis ID?)然后存儲(chǔ)在數(shù)據(jù)庫(kù)中,以便如果然后玩家取消冒險(xiǎn),我可以使用它在隊(duì)列中找到該作業(yè)并將其刪除,假設(shè)它沒(méi)有運(yùn)行。
查看完整描述

1 回答

?
慕哥9229398

TA貢獻(xiàn)1877條經(jīng)驗(yàn) 獲得超6個(gè)贊

沒(méi)有直接或簡(jiǎn)單的方法可以做到這一點(diǎn)。延遲的作業(yè)保留在sorted sets待處理時(shí)間score和作業(yè)負(fù)載中value。

有多種方法可以從排序集中刪除元素(大多數(shù)方法需要一些努力,具體取決于延遲隊(duì)列的大?。?,例如

  • 您獲得分派作業(yè)的“準(zhǔn)確”有效負(fù)載,然后使用ZREM將其刪除。這很困難,因?yàn)閷?duì)象(具有所有參數(shù)的作業(yè)的序列化版本)可能很大,并且您無(wú)法創(chuàng)建“精確”作業(yè),因?yàn)樗哂形ㄒ粯?biāo)識(shí)符。您可以使用ZRANGEBYSCORE和獲取它的列表WITHSCORES。它將為您提供職位列表及其分?jǐn)?shù)。您可以使用分?jǐn)?shù)來(lái)識(shí)別要延遲的工作。獲取值(序列化有效負(fù)載)然后使用ZREM.

  • 如果在特定時(shí)間只有一項(xiàng)作業(yè)要處理,您可以使用ZREMRANGEBYSCORE并使用處理時(shí)間。如果正好有 n 個(gè)作業(yè)需要在該時(shí)間處理,那么其他作業(yè)也可以被刪除,因?yàn)?code>ZREMRANGEBYSCORE需要時(shí)間間隔。

  • 您可以嘗試使用ZSCAN掃描整個(gè)延遲列表(帶分頁(yè))并找到作業(yè)的分?jǐn)?shù)和標(biāo)識(shí)符,然后使用ZREMRANGEBYLEX和標(biāo)識(shí)符將其刪除。

  • 另一種方法可以是在方法的開(kāi)頭放置取消條件handle。這個(gè)需要應(yīng)用層開(kāi)發(fā)。每當(dāng)您將作業(yè)推送到隊(duì)列時(shí),您都會(huì)向該作業(yè)發(fā)送一個(gè)標(biāo)識(shí)符,并將相同的標(biāo)識(shí)符(您可以理解的)也放入Redis中(大于EXPIRE延遲時(shí)間)。當(dāng)你想取消它時(shí),然后從Redis中刪除它。在handle方法內(nèi)部檢查Redis中是否存在給定的標(biāo)識(shí)符,如果不存在則從代碼塊提前返回。


查看完整回答
反對(duì) 回復(fù) 2023-08-06
  • 1 回答
  • 0 關(guān)注
  • 151 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)